lpfilter 命令
注:这是一个 System V 打印子系统命令。
用途
管理和 LP 打印服务配合使用的过滤器。
语法
描述
lpfilter 命令用于添加、更改、删除和列示与 LP 打印服务配合使用的过滤器。 这些过滤器用于将一个文件的内容类型转换为打印机可接受的内容类型。
如果输入 lpfilter -?,那么系统将显示命令用法消息并返回 0。
标志
| 项 | 描述 |
|---|---|
| - (连字符) | 添加或更改从标准输入指定的过滤器。 |
| -f FilterName | 指定要添加、更改、删除或列示的过滤器的名称。 |
| -F PathName | 添加或更改由文件路径名的内容指定的过滤器。 |
| -i | 重置原始过滤器到它的原始设置。 |
| -l | 列示一个过滤器描述。 |
| -x | 删除一个过滤器。 |
参数 all 可以用于代替 FilterName 并带上任意的这些标志。 当 all 指定了 -F 或 - 标志的时候,所要求的更改作用于所有的过滤器。 使用 all 并带上 -i 标志使得所有过滤器恢复到它们的原始设置,对于这些过滤器,预定义的设置是初始可用的。 使用 all 参数并带上 -x 标志结果使得所有过滤器被删除,带上 -l 标志使用该参数生成一个所有过滤器的列表。
添加或更改过滤器
在 -f 标志中指定的过滤器被添加到过滤器表中。 如果该过滤器已经存在,将更改它的描述以反映输入中的新信息。
如果给定了 -F 标志,那么将从 PathName 获取过滤器描述; 如果指定了 - 标志,那么将从标准输入获取过滤器描述。 要定义或更改过滤器必须给出这两者之一。 如果指定的过滤器是最初与 LP 打印服务一起交付的,那么 -i 标志恢复原始的过滤器描述。
当一个现有的过滤器由 -F 标志或 - 标志更改时,在新信息中没有指定的项维持原样。 当由该命令添加一个新的过滤器时,没有指定的项给予缺省值。
过滤器用于将请求的内容转换为打印机可接受的数据流。 对于给定的打印请求,LP 打印服务如下:
- 请求中的内容
- 打印机名称
- 打印机类型
- 打印机可接受的内容类型
- 请求发起方要求的打印方式
它使用该信息查找过滤器或过滤器管道,它们将内容转换为打印机可接受的类型。
提供该命令输入的项列表以及每个项后面跟的描述。 所有的列表由逗号或者空格分隔。
- 输入类型:content-type-list
- 输出类型:content-type-list
- 打印机类型:printer-type-list
- 打印机:printer-list
- 过滤器类型:filter-type
- 命令:shell-command
- 标志:template-list
| 项 | 描述 |
|---|---|
| 输入类型 | 给出可以被过滤器接受的内容的类型。 (缺省值为 any。) |
| 输出类型 | 给出过滤器能够从任意的输入内容类型生成的内容的类型。 (缺省值为 any。) |
| 打印机类型 | 给出可以使用过滤器的打印机类型。 LP 打印服务将过滤器的使用限制在这些类型的打印机中。 (缺省值为 any。) |
| 打印机 | 给出可以使用过滤器的打印机类型。 LP 打印服务将过滤器的使用限制在仅仅指定的打印机中。 (缺省值为 any。) |
| 过滤器类型 | 标记过滤器为 slow 过滤器或 fast 过滤器。 Slow 过滤器通常是那些花费长时间转换其输入的过滤器。 它们运行时可以不连接到打印机,使得当过滤器运行的时候保持打印机没有被占用。 如果列示的打印机是在远程系统上,它的过滤器类型必须有 slow 值。 Fast 过滤器通常是那些快速转换它们的输入或者那些运行的时候必须连接到打印机的过滤器。 它们被给予连接到物理打印机的接口程序 IP 以运行。 |
| 命令 | 指定要运行的执行程序调用过滤器。 程序完整路径名以及固定的标志必须包括在 shell-command 中;附加的标志要根据每个打印请求的特征以及“flags”字段来构造。 每个过滤器都必须指定一个命令。 命令必须接受数据流作为标准输入并在其标准输出上生成已转换的数据流。 这允许要构造的过滤器管道转换不是由单一过滤器处理的数据。 |
| 标志 | 指定模板的逗号分隔的列表,LP 打印服务用这些模板根据以后列在表中每个打印请求的特征构造送往过滤器的标志。 通常,每个模板都属于以下格式: keyword-pattern= replacement keyword 命名了模板试图将其映射到特定于过滤器的标志的特征;每个有效的 keyword 列在下表中。 pattern 是以下之一:表中所列示格式之一的文字模式、一个单一星号(*)或一个正则表达式。 如果 pattern 匹配特征的值,模板合适并且用于生成一个特定于过滤器的标志。 replacement 是作为标志使用的东西。 |
正则表达式跟那些在 ed 或 vi 命令中找到的一样。 This includes the \( . . . \) and \N constructions, which can be used to extract portions of the 模式 for copying into the 替换, and the ``&'', which can be used to copy the entire 模式 into the 替换.
The 替换 can also contain a ``*''. It too, is replaced with the entire 模式, just like the ``&'' of the 德 command.
| lp 标志 | 属性 |
|---|---|
| -T |
|
| 不适用 |
|
| 不适用 |
|
| -d |
|
| -f, -o cpi= |
|
| -f, -o lpi= |
|
| -f, -o length= |
|
| -f, -o width= |
|
| -P |
|
| -S |
|
| -f |
|
| -y |
|
| -n |
|
例如,模板MODES landscape = -l显示如果使用 -y 横向 标志提交打印请求,那么将为过滤器提供标志 -l。 作为另一个示例,模板TERM * = -T *显示为该过滤器提供了标志 -T printer-type ,对于使用该过滤器的打印请求关联的任何 printer-type 。
作为最后一个示例,请考虑模板MODES prwidth\=\(.*\) = -w\1.假设用户下达了lp-y prwidth=10命令
从上表中,LP 打印服务确定了 -y 标志是由 MODES 模板处理的。 这里 MODES 模板起作用是因为“prwidth\=\(.*\)”模式与用户指定的 prwidth=10 相匹配。 replacement -w\1 使得 LP 打印服务生成过滤器标志 -w10。
如果需要,LP 打印服务通过连接多个过滤器处理用户的文件和所有打印标志来构造一个过滤器管道。 如果打印服务构造了过滤器管道,用于管道中的每个过滤器的 INPUT 和 OUTPUT 值是对于那个过滤器输入输出的类型,而不是对于整个管道。
删除过滤器
-x 标志用于从 LP 过滤器表中删除在 FilterName 中指定的过滤器。
列示过滤器描述
-l 标志用于列示 FilterName 中指定的过滤器的描述。 如果命令成功,以下消息被发送到标准输出:
Input types: content-type-list
Output types: content-type-list
Printer types: printer-type-list
Printers: printer-list
Filter type: filter-type
Command: shell-command
flags: template-list如果命令失败,一个错误消息被发送到标准错误。