CUPS(OpenSUSE)应用自定义过滤器,该过滤器在后端

时间:2018-10-17 23:26:10

标签: cups

我遇到了一个包含多个阶段的任务。可以这样定义一个阶段:“在打印之前捕获每个打印作业文件并将其保存在指定的位置;打印作业文件应包含诸如要打印的总页数之类的信息。”

据我了解,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 )。

这是我的问题:

  1. 将调用我的自定义过滤器吗? (它们的成本为零,但我不确定CUPS会将这一步骤添加到管道中)
  2. 我应该如何处理未点击PSTOPS | PDFTOPDF过滤器的队列?
  3. 早晚,管道到达后端部分,直接与打印机通信。我是否应该在此阶段而不是过滤阶段尝试进行备份?如果是这样,如何实施?

非常感谢您的回复!

1 个答案:

答案 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的非常强大且通用的方法。

希望对您有所帮助。