系统管理指南:打印

编写打印过滤器程序

LP 打印服务在 /usr/lib/lp/postscript 目录中提供过滤器程序。这些过滤器涵盖了大多数 PostScript 打印情况(目标打印机要求数据为 PostScript 格式)。打印过滤器程序必须是二进制可执行文件。

过滤器的类型

有以下两种类型的打印过滤器: 快速过滤器和慢速过滤器。

快速过滤器不需要大量的处理时间来准备要打印的文件。它们在运行时必须可以访问打印机。为了能够检测到打印机故障,打印过滤器必须是快速过滤器。将 PRINTER 关键字用作过滤器选项的任何过滤器都必须作为快速过滤器进行安装。

慢速过滤器需要大量的处理时间来准备要打印的文件。它们在运行时不需要访问打印机。慢速过滤器在后台运行,因此它们不会停止打印机,从而允许打印不需要慢速过滤的其他文件。

转换文件

LP 打印服务使用打印过滤器将文件从一种内容类型转换为另一种内容类型。可以为每个打印机指定接受的文件内容类型。用户在提交打印请求时指定文件内容类型。然后,LP 打印服务查找可以打印该内容类型文件的打印机。因为许多应用程序可以生成用于各种打印机的文件,所以此方法通常已经可以满足需要。但是,一些应用程序可能会生成无法在任何可用打印机上打印的文件。

LP 打印服务每次收到打印机无法直接接受其格式的文件类型的打印请求时,都会尝试将打印请求的内容类型与可用的(或指定的)打印机的内容类型进行匹配。如果存在匹配项,则可以直接将文件发送到打印机,而不进行过滤。如果找不到匹配项,或者内容类型指定需要使用过滤器,则 LP 打印服务尝试将文件的内容类型与可用过滤器的输入内容类型进行匹配。此外,LP 打印服务尝试将过滤器的输出类型与打印机的内容类型进行匹配。当找到合适的过滤器时,将通过过滤器传递打印请求。

处理特殊打印模式

打印过滤器处理特殊打印模式并请求打印特定页。打印要求自定义过滤器的打印请求的任何特征时,需要特殊的打印模式。

过滤器处理以下特征:

LP 打印服务提供这些特征的缺省设置。但是,打印过滤器可以更有效地处理某些特征。例如,一些打印机可以比 LP 打印服务更有效地处理多个副本。因此,在这种情况下,可以为多副本页面控制提供过滤器。

检测打印机故障

每个打印机都有自己的方法来检测打印机故障和将故障信号传输到 LP 打印服务。LP 打印服务仅检查在打印时是否存在挂起(载体丢失)和过长的延迟。

一些打印机可以检测很多故障,并可以发送描述故障原因的消息。其他打印机通过使用除载体丢失信号或关闭数据流信号之外的信号来指示故障。解释此附加的打印机故障信息需要过滤器。

过滤器还可以挂起打印请求,等待清除打印机故障,然后恢复打印。借助此功能,不需要全部重新打印已中断的打印请求。只有知道打印机所用控制序列的过滤器才能确定文件中的分页位置。因此,只有这样的过滤器才可以在清除故障之后找到文件中应开始打印的位置。

当打印过滤器生成消息时,那些消息由 LP 打印服务处理。如果启用了警报,则 LP 打印服务将警报发送给系统管理员。有关详细信息,请参见使用 LP 打印命令设置打印机故障警报

打印过滤器程序的要求

无论打印过滤器简单或复杂,都必须满足以下要求:

如果希望过滤器检测打印机故障,则还应该满足以下要求: