注:此为一个 System V 打印子系统命令。
管理和 LP 打印服务一起使用的过滤器。
lpfilter -f FilterName -F PathName
lpfilter 命令用于添加、更改、删除和列出与 LP 打印服务一起使用的过滤器。这些过滤器用于将一个文件的内容类型转换为打印机可接受的内容类型。
-(连字符) | 添加或更改从标准输入指定的过滤器。 |
-f FilterName | 指定要添加、更改、删除或列出的过滤器的名称。 |
-F PathName | 添加或更改由文件路径名的内容指定的过滤器。 |
-i | 复位原始过滤器到它的原始设置。 |
-l | 列出一个过滤器描述。 |
-x | 删除一个过滤器。 |
参数 all 可以用于代替 FilterName 并带上任意的这些标志。当 all 指定了 -F 或 - 标志的时候,所要求的更改作用于所有的过滤器。使用 all 并带上 -i 标志使得所有过滤器恢复到它们的原始设置,对于这些过滤器,预定义的设置是初始可用的。使用 all 参数并带上 -x 标志结果使得所有过滤器被删除,带上 -l 标志使用该参数产生一个所有过滤器的列表。
在 -f 标志中指定的过滤器被添加到过滤器表中。如果该过滤器已经存在,将更改它的描述以反映输入中的新信息。
如果给出 -F 标志,过滤器描述就取自 PathName;或者如果指定的是 - 标志,过滤器描述就取自标准输入。要定义或更改过滤器必须给出这两者之一。如果指定的过滤器是最初与 LP 打印服务一起交付的,则 -i 标志恢复原始的过滤器描述。
当一个现有的过滤器由 -F 标志或 - 标志更改时,在新信息中没有指定的项维持原样。当由该命令添加一个新的过滤器时,没有指定的项给予缺省值。
过滤器用于将请求的内容转换为打印机可接受的数据流。对于给定的打印请求,LP 打印服务如下:
它使用该信息查找过滤器或过滤器管道,它们将内容转换为打印机可接受的类型。
提供该命令输入的项列表以及每个项后面跟的描述。所有的列表由逗号或者空格分隔。
输入类型 | 给出可以被过滤器接受的内容的类型。(缺省值为 any。) |
输出类型 | 给出过滤器能够从任意的输入内容类型产生的内容的类型。(缺省值为 any。) |
打印机类型 | 给出可以使用过滤器的打印机类型。LP 打印服务将过滤器的使用限制在这些类型的打印机中。(缺省值为 any。) |
打印机 | 给出可以使用过滤器的打印机类型。LP 打印服务将过滤器的使用限制在仅仅指定的打印机中。(缺省值为 any。) |
过滤器类型 | 标记过滤器为 slow 过滤器或 fast 过滤器。Slow 过滤器通常是那些花费长时间转换其输入的过滤器。它们运行时可以不连接到打印机,使得当过滤器运行的时候保持打印机没有被占用。如果列出的打印机是在远程系统上,它的过滤器类型必须有 slow 值。Fast 过滤器通常是那些快速转换它们的输入或者那些运行的时候必须连接到打印机的过滤器。它们被给予连接到物理打印机的接口程序 IP 以运行。 |
Command | 指定要运行的执行程序调用过滤器。程序全路径名以及固定的标志必须包括在 shell-command 中;附加的标志要根据每个打印请求的特征以及“flags”字段来构造。每个过滤器都必须指定一个命令。
命令必须接受数据流作为标准输入并在其标准输出上产生已转换的数据流。这允许要构造的过滤器管道转换不是由单一过滤器处理的数据。 |
Flags | 指定模板的逗号分隔的列表,LP 打印服务用这些模板根据以后列在表中每个打印请求的特征构造送往过滤器的标志。
通常,每个模板都属于以下格式: keyword-pattern=replacement keyword 命名了模板试图将其映射到特定于过滤器的标志的特征;每个有效的 keyword 列在下表中。pattern 是以下之一:表中所列出格式之一的文字模式、一个单一星号(*)或一个正则表达式。如果 pattern 匹配特征的值,模板合适并且用于生成一个特定于过滤器的标志。replacement 是作为标志使用的东西。 |
正则表达式跟那些在 ed 或 vi 命令中找到的一样。这包括 \( . . . \) 和 \n 结构,它们可以用于摘录部分 pattern 复制到 replacement 中,以及“&”,它能用于复制整个 pattern 到 replacement。
replacement 也可以包含一个“*”。它同样由整个 pattern 替换,就像 ed 命令中的“&”一样。
lp 标志 | 特征 | 关键字 | 可能模式 |
---|---|---|---|
-T | 内容类型(输入) | INPUT | content-type |
N/A | 内容类型(输出) | OUTPUT | content-type |
N/A | 打印机类型 | TERM | printer-type |
-d | 打印机名 | PRINTER | printer-name |
-f, -o cpi= | 字符间距 | CPI | integer |
-f, -o lpi= | 行间距 | LPI | integer |
-f, -o length= | 页面长度 | LENGTH | integer |
-f, -o width= | 页面宽度 | WIDTH | integer |
-P | 打印页面 | PAGES | page-list |
-S | 字符集
打印轮 |
CHARSET
CHARSET |
character-set-name
print-wheel-name |
-f | 打印纸名称 | FORM | form-name |
-y | 方式 | MODES | mode |
-n | 副本数目 | COPIES | integer |
例如,模板 MODES landscape = -l 显示如果提交的打印请求带有 -y landscape 标志,则过滤器给予 -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 中指定的过滤器的描述。如果命令成功,以下消息被发送到标准输出:
输入类型:content-type-list 输出类型:content-type-list 打印机类型:printer-type-list 打印机:printer-list 过滤器类型:filter-type 命令:shell-command 标志:template-list
如果命令失败,一个错误消息被发送到标准错误。
lpadmin 命令。