I did this a few years ago after finding the source code on the Japanese Xerox site in desperation. I only just got around to formally documenting it. I just found this thread so thought I'd add my bit.
I had the same issue as hdau above to make it work with the "Auditron" feature on our ApeosPort-III C3300 and C2200 printers. hdau has hard-coded the JOAU call to get it working. I chose to use the opt structure calls, allowing the PPD to specific the ID ... which requires the header file to be corrected.
The default code in fxlinuxprint.h defines this:
const char PJLAttributeJoau[] = "\"@JOAU=@";
It needs the last @ symbol removed to work on AperosPort units.
Then, in the PPD you can make a drop-down list of printer IDs for ease of use (I've been unable to find a way to get the PPD to allow a text entry dialog for this purpose - maybe someone else knows better):
I did this a few years ago after finding the source code on the Japanese Xerox site in desperation. I only just got around to formally documenting it. I just found this thread so thought I'd add my bit.
I had the same issue as hdau above to make it work with the "Auditron" feature on our ApeosPort-III C3300 and C2200 printers. hdau has hard-coded the JOAU call to get it working. I chose to use the opt structure calls, allowing the PPD to specific the ID ... which requires the header file to be corrected.
The default code in fxlinuxprint.h defines this:
const char PJLAttributeJoau[] = "\"@JOAU=@";
It needs the last @ symbol removed to work on AperosPort units.
diff -rB fxlinuxprint- src-1.0. 1/fxlinuxprint. c fxlinuxprint- src-1.0. 1-ryan/ fxlinuxprint. c ute); src-1.0. 1/fxlinuxprint. h fxlinuxprint- src-1.0. 1-ryan/ fxlinuxprint. h
251c251
< "(unknown)",
---
> "5678",
569a570,572
> sprintf (str, "%s%s\"\x0a", PJLAttributeJoau, opt->user_name);
> strcat (pjl, str);
> strcat (pjl, PJLSetJobAttrib
diff -rB fxlinuxprint-
122c122
< const char PJLAttributeJoau[] = "\"@JOAU=@";
---
> const char PJLAttributeJoau[] = "\"@JOAU=";
Then, in the PPD you can make a drop-down list of printer IDs for ease of use (I've been unable to find a way to get the PPD to allow a text entry dialog for this purpose - maybe someone else knows better):
*% Generic Accounting
*OpenUI *FXUserName/User Name: PickOne
*OrderDependency: 10.0 AnySetup *FXUserName
*DefaultFXUserName: 5678
*FXUserName 5678/Server: ""
*FXUserName 0873/Ryan: ""
*FXUserName 2534/Bob: ""
*CloseUI: *FXUserName
The line to invoke the pstopdffx binary compiled from the source in the PPD is:
*cupsFilter: "application/ vnd.cups- postscript 0 pstopdffx"
And the binary usually lives in: /usr/lib/ cups/filter/