我遇到了一个包含多个阶段的任务。可以这样定义一个阶段:“在打印之前捕获每个打印作业文件并将其保存在指定的位置;打印作业文件应包含诸如要打印的总页数之类的信息。”
据我了解,CUPS实现了可扩展的管道,其中包含过滤器链,后端和其他部分。
在过滤器管道中,通常PSTOPS或PDFTOPDF过滤器会插入我要获取的特定打印作业信息。
我想我必须实现自定义过滤器,该过滤器在PSTOPS / PDFTOPDF和备份打印作业之后立即出现。为了实现它,我将添加
application/vnd.cups-postscript application/vnd.cups-postscript 0 customFIlterName
application/vnd.cups-pdf application/vnd.cups-pdf 0 customFilterName
到 mime.convs (或 local.convs )。
这是我的问题:
非常感谢您的回复!
答案 0 :(得分:1)
我想分享一下我实施的内容,以防其他人使用。
设备功能和其他一些信息包含在相关的ppd文件(etc / cups / ppd / DEVICE_NAME.ppd)中。
Ppd文件包含类似“ * cupsFilter:IN_MIME OUT_MIME FILTER_NAME”的字符串。 此字符串指示应在后端之前最后调用哪个过滤器。 字符串可能会被编辑,例如IN_MIME变成CUSTOM_IN_MIME,应将其声明为相关的cups mime描述文件。然后,可以将成本为零的自定义过滤器声明为IN_MIME CUSTOM_IN_MIME。
这是唯一了解CUSTOM_IN_MIME的过滤器,因此必须被调用(实际上,CUSTOM_IN_MIME与IN_MIME相同,并且仅用于强制使用自定义过滤器)。
在CUSTOM_FILTER中,我们可以实现我们想要的任何东西。这是注入CUPS的非常强大且通用的方法。
希望对您有所帮助。