Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My company has a lot of Ubuntu 12.04 desktops and a new Xerox ColorQube 8900S networked printer.

Using the .ppd file from Xerox I can print to the printer fine, unless XSA accounting is turned on. At this point no jobs are accepted, getting a "the job was deleted due to invalid accounting IDs" error printed out.

I have tried to alter the ppd to include the accounting credentials, but to no avail.

I am not well versed in postscript, or .ppd authoring, so I'm stabbing in the dark with scraps of info from Xerox's site and other forums.

I've added this

*%              Generic Accounting
*JCLOpenUI *JCLAccounting/Accounting: PickOne
*OrderDependency: 10.1 JCLSetup *JCLAccounting
*DefaultJCLAccounting: XSAGroup
*JCLAccounting False/Off: ""
*JCLAccounting try1/Try 1: "@PJL COMMENT OID_ATT_ACCOUNTING_INFORMATION <22>0301|0421000<22>;<0A>"
*JCLCloseUI: *JCLAccounting

And installing it in CUPS gives me a new JCL tab in the "Set Printing Defaults" bit. The "Try 1" line is supposed to work - I took this direct from Xerox for this machine. The "XSAGroup" line is from advice on older printers. the 0301 is my user account (PIN) and the 1000 is the group account. The |042 is the required separator.

I've tried ipp:// and socket:// - I think both 'work' in terms of talking to the device but both result in the same error.

Can anyone with expertise in .ppd files or Xerox printers help me figure out how to get the userId/accountId successfully submitted to the printer?

share|improve this question
up vote 0 down vote accepted

Here's the section I added in the PPD file:

*JCLBegin:"<1B>%-12345X@PJL JOB<0A>"

*% nb. I think the XeroxHavePoorLinuxSupport should be JCLXeroxHavePoorLinuxSupport
*% but if so, the options are not available to applications to select.
*OpenUI *XeroxHavePoorLinuxSupport/Grey or Colour: PickOne
*OrderDependency: 46.0 JCLSetup *XeroxHavePoorLinuxSupport
*DefaultXeroxHavePoorLinuxSupport: monochrome
*XeroxHavePoorLinuxSupport monochrome/Greyscale: "@PJL XCPT <?xml version=<22>1.0<22> encoding=<22>UTF-8<22>?>
  @PJL XCPT <!DOCTYPE xpif SYSTEM <22>xpif-v02074.dtd<22><3E>
  @PJL XCPT <xpif version=<22>1.0<22> cpss-version=<22>2.07<22> xml:lang=<22>en-US<22><3E>
  @PJL XCPT          <job-template-attributes>
  @PJL XCPT <09><09><3C>color-effects-type syntax<3D><22>keyword<22><3E>monochrome-grayscale</color-effects-type>
  @PJL XCPT <09><09><3C>job-accounting-user-id syntax=<22>name<22> xml:space=<22>preserve<22><3E>0301<3C>/job-accounting-user-id>
  @PJL XCPT          </job-template-attributes>
  @PJL XCPT </xpif>"
*XeroxHavePoorLinuxSupport color/Colour: "@PJL XCPT <?xml version=<22>1.0<22> encoding=<22>UTF-8<22>?>
  @PJL XCPT <!DOCTYPE xpif SYSTEM <22>xpif-v02074.dtd<22><3E>
  @PJL XCPT <xpif version=<22>1.0<22> cpss-version=<22>2.07<22> xml:lang=<22>en-US<22><3E>
  @PJL XCPT          <job-template-attributes>
  @PJL XCPT <09><09><3C>color-effects-type syntax<3D><22>keyword<22><3E>color</color-effects-type>
  @PJL XCPT <09><09><3C>job-accounting-user-id syntax=<22>name<22> xml:space=<22>preserve<22><3E>0301<3C>/job-accounting-user-id>
  @PJL XCPT          </job-template-attributes>
  @PJL XCPT </xpif>"
*CloseUI: *XeroxHavePoorLinuxSupport

*JCLEnd:"<1B>%-12345X@PJL EOJ<0A><1B>%-12345X<0A>"

Nb. 0301 is our accounting code. You'd have to put yours in there.

share|improve this answer

Accordigg to this PDF titled: Xerox Standing Accounting: Tracking Usage by Service Customer Tip it isn't possible.

Linux PPD Operating System The ability to prompt for a UserID for specific services does not currently exist in the Linux print driver.

The stated Linux procedure uses existing functionality.

For those customers who would like to enable accounting for print and copy jobs but do not want to require the user to enter an accounting code for their print jobs the following section describes how to modify the Linux PPD.

share|improve this answer
Thanks for the reminder! Yes, Xerox are awful. We were sold the machine with Linux support but it doesn't exist. However i have managed to craft a PPD file that does enable out Ubuntu machines to print. The user credentials are hard coded in, but that's fine for us. I'll post it up here. – artfulrobot Jun 20 '14 at 6:43
@artfulrobot - yes you can hard code it. Did you figure out how to disallow the users of the PPD file from seeing these credentials? I believe they're stored in clear text which makes them kinda useless, other than for tracking usage. – slm Jun 20 '14 at 11:57

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.