![使用 Linux 上的 XSA 会计功能打印至 Xerox](https://linux22.com/image/797822/%E4%BD%BF%E7%94%A8%20Linux%20%E4%B8%8A%E7%9A%84%20XSA%20%E4%BC%9A%E8%AE%A1%E5%8A%9F%E8%83%BD%E6%89%93%E5%8D%B0%E8%87%B3%20Xerox.png)
我的公司有很多 Ubuntu 12.04 桌面和一台新的 Xerox ColorQube 8900S 网络打印机。
使用 Xerox 的 .ppd 文件,我可以正常打印到打印机,除非启用了 XSA 会计功能。此时不会接受任何作业,而是打印出“由于会计 ID 无效,作业已被删除”的错误。
我曾尝试修改 ppd 以包含会计凭证,但是无济于事。
我不太熟悉 postscript 或 .ppd 创作,所以我只能根据来自施乐网站和其他论坛的零碎信息进行摸索。
我已经添加了这个
*% 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>"
*JCLAccounting XSAGroup/XSA Group Based Accounting: "@PJL COMMENT OID_ATT_ACCOUNTING_INFORMATION_AVP <22>XRX_USERID,0301<22>;<0A>@PJL COMMENT OID_ATT_ACCOUNTING_INFORMATION_AVP <22>XRX_GROUPACCT,1000<22>;<0A>"
*JCLCloseUI: *JCLAccounting
在 CUPS 中安装它会在“设置打印默认值”位中给我一个新的 JCL 选项卡。“尝试 1”行应该可以工作 - 我直接从 Xerox 为这台机器取了这行。“XSAGroup”行来自旧打印机的建议。0301 是我的用户帐户 (PIN),1000 是组帐户。|042 是必需的分隔符。
我尝试过 ipp://1.2.3.4/ipp 和 socket://1.2.3.4:9100 - 我认为两者在与设备通信方面均“有效”,但都导致相同的错误。
有 .ppd 文件或 Xerox 打印机专业知识的人能帮我弄清楚如何将 userId/accountId 成功提交给打印机吗?
答案1
这是我在 PPD 文件中添加的部分:
*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
*JCLToPSInterpreter:"@PJL ENTER LANGUAGE = POSTSCRIPT<0A>"
*JCLEnd:"<1B>%-12345X@PJL EOJ<0A><1B>%-12345X<0A>"
注意:0301 是我们的会计代码。您必须在其中输入自己的代码。
答案2
根据此 PDF 的标题:施乐常备会计:按服务跟踪使用情况 客户提示这是不可能的。
Linux PPD 操作系统 Linux 打印驱动程序中当前不具备提示特定服务的用户 ID 的功能。
所述 Linux 程序使用现有功能。
对于那些希望启用打印和复印作业会计功能但不想要求用户输入其打印作业会计代码的客户,以下部分介绍了如何修改 Linux PPD。