Comment 6 for bug 124442

Revision history for this message
ryanau (ryan-slowest) wrote :

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
251c251
< "(unknown)",
---
> "5678",
569a570,572
> sprintf (str, "%s%s\"\x0a", PJLAttributeJoau, opt->user_name);
> strcat (pjl, str);
> strcat (pjl, PJLSetJobAttribute);
diff -rB fxlinuxprint-src-1.0.1/fxlinuxprint.h fxlinuxprint-src-1.0.1-ryan/fxlinuxprint.h
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/