如何判断 CUPS 打印作业何时完成以及有关该作业的信息?
题
我需要知道每次创建/完成 Mac 打印作业时,以及有关该作业的一些信息(打印内容、页面、副本等)。
到目前为止,我想出的最好方法是在 /var/spool/cups/ 上使用 kqueue() ,然后在创建 c##### 文件时解析它们,但我想知道是否有更好的方法方式。
解决方案
我考虑创建一个过滤器,您可以将其放入CUPS管道中,该管道收集此信息并将其存储(例如在数据库中)。然后,您可以使用任何标准数据库访问机制访问数据库以获取信息。基本上,过滤器只是一个命令行程序,它从CUPS获取传递给它的许多参数,需要读取stdin上的输入并将其写入stdout。您可以在 http://www.cups.org/documentation中找到更多信息。 PHP / API-filter.html 。
其他提示
你有没有看过 page_log 文件为你提供的内容?有一个手册页提供了有关其格式的详细信息。最新版本的CUPS将允许您配置该文件中记录的信息量。
你有没有调查过 IPP订阅 CUPS 支持哪些方案?
这些可能会引发 邮寄地址: 或一个 RSS: 某些打印系统事件的通知。与此主题相关的 IPP 操作有:
Create-Job-Subscriptions, Create-Printer-Subscriptions, Create-Resource-Subscriptions, Create-System-Subscriptions
有关此功能的详细信息,请参阅 CUPS 编程手册:
不隶属于 StackOverflow