拦截CUPS系统上的PostScript驱动程序输出

时间:2017-02-10 08:31:19

标签: postscript cups

我有一台带有CUPS的Linux PC和连接到它的打印机。在创建打印作业时,是否可以获取CUPS驱动程序生成并发送到打印机的PostScript文档?

1 个答案:

答案 0 :(得分:0)

  1. 建议您停止打印队列并从/var/spool/cups/获取作业文件的评论不足:

    • 您将找到的不是作业文件,因为它将发送到(PostScript)打印机。
    • 这是原始形状和格式的作业文件,因为它是收到的CUPS。


    现在收到的文件可能已经是PostScript格式(如果打印应用程序是,例如,Firefox)。但它也可以是CUPS接受的任何格式(文本,图像,PDF或“原始”输入格式)。即使它是PostScript,CUPS在将其发送到打印设备之前仍会对其进行一些处理。处理量取决于用户请求的明确作业选项。

  2. 要真正拦截由CUPS队列can be a bit more work发送到打印机的完全相同的字节流(正如我的StackOverflow答案链接显示)。

    但是,尝试以下步骤可能会很幸运:

    • FileDevice Yes放入 cupsd.conf 。 (停止CUPS服务并在编辑配置文件后重新启动它。)
    • 通过运行来记录您要拦截的打印队列的当前“后端”URI:

      lpstat -v
      

      (这只是为了确保您以后可以将其恢复到与以前相同的工作状态。)

    • 运行

      修改现有的CUPS队列
      lpadmin -p printername -v file:/var/spool/cups/tmp/ps-test.ps
      
    • 现在您的队列与其真实设备URI断开连接并“连接”到“文件”设备。它现在将所有处理过的打印作业存储在 /var/spool/cups/tmp/ps-test.ps 位置。 (您可能需要root权限才能将其删除或在那里阅读。)


    如果您的CUPS版本是最近的,那么你会更“不走运”。由于安全考虑,已删除FileDevice配置参数。