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