定义打印过滤器选项的信息源有 13 个,其中每个信息源都由一个关键字表示。每个选项都是在模板中定义的。模板是过滤器定义中的一条语句,定义要基于过滤器特征之一的值传递到过滤器命令的选项。
在过滤器定义中指定的选项可以不包括任何关键字、包括全部 13 个关键字或 13 个关键字的任何子集。此外,如果完整的过滤器定义需要多个定义,则可以多次定义单个关键字。下表包含可用于在打印过滤器定义中定义选项的 13 个关键字的描述。
表 10–2 打印过滤器选项的关键字
关键字 |
模式 |
示例 |
|
---|---|---|---|
内容类型(输入) |
INPUT |
content-type |
troff |
内容类型(输出) |
OUTPUT |
content-type |
postscript, impress |
打印机类型 |
TERM |
printer-type |
att495 |
打印机名称 |
PRINTER |
printer-name |
lp1 |
字符间距 |
CPI |
scaled-decimal |
10 |
行间距 |
LPI |
scaled-decimal |
6 |
页长 |
LENGTH |
scaled-decimal |
66 |
页宽 |
WIDTH |
scaled-decimal |
80 |
要打印的页数 |
PAGES |
page-list |
1-5,13-20 |
字符集 |
CHARSET |
character-set |
finnish |
表单名称 |
FORM |
form-name |
invoice2 |
份数 |
COPIES |
integer |
3 |
MODES |
mode |
landscape |
打印过滤器定义可以包括多个模板。多个模板可在同一行上输入,由逗号分隔;也可在不同的行上输入,在前面加 Options: 前缀。
模板的格式如下: keyword pattern = replacement
keyword 标识为过滤器的特定特征注册的选项类型。
pattern 是关键字的特定选项。
replacement 是关键字具有指定值时发生的情况。
作为如何为特定过滤器定义选项的示例,假定希望打印服务调度程序按照以下条件将打印请求指定给过滤器:
如果要由过滤器生成的 OUTPUT 类型为 impress,则将 -I 选项传递到过滤器。
如果要由过滤器生成的 OUTPUT 类型为 postscript,则将 -P 选项传递到过滤器。
要指定这些条件,请将以下模板作为 lpfilter 命令的选项提供:
Options: OUTPUT impress=-I, OUTPUT postscript=-P |
如果 Options 行变得太长,则将每个模板放置在单独的行上,如下所示:
Options: OUTPUT impress=-I Options: OUTPUT postscript=-P |
在这两个模板中,keyword 被定义为 OUTPUT。在第一个模板中,模式为 impress,replacement 的值为 --I。在第二个模板中,pattern 的值为 postscript,replacement 的值为 -P。
要确定为每种类型的模板(即,对于每个关键字的 pattern 和 replacement 参数)提供哪些值,请考虑以下事项:
INPUT 模板的值来自需要由过滤器转换的文件内容类型。
OUTPUT 模板的值来自必须由过滤器生成的输出类型。
TERM 模板的值是打印机类型。
PRINTER 模板的值是将打印最终输出的打印机的名称。
CPI、LPI、LENGTH 和 WIDTH 模板的值来自用户的打印请求、所用表单或打印机缺省值。
PAGES 模板的值是应打印的页的列表。通常,该值由用逗号分隔的页范围的列表组成。每个页范围由用短划线分隔的数字对或单个数字组成。(例如,1–5,6,8,10 指示第 1 页到第 5 页,以及第 6 页、第 8 页和第 10 页。)但是,在 -P 选项中为打印请求提供的任何值在传递后都保持不变。
CHARSET 模板的值是要使用的字符集的名称。
FORM 模板的值是由 lp -f 命令(用于提交打印请求的命令)请求的表单的名称。
COPIES 模板的值是要打印的文件的份数。如果过滤器使用此模板,则 LP 打印服务将它打印的已过滤文件份数减少到一份。此“单个副本”包括由过滤器生成的多个副本。
MODES 模板的值来自 lp -y 命令。由于用户可以指定几个 -y 选项,因此 MODES 模板可能具有几个值。这些值按用户指定的从左到右的顺序进行应用。
replacement 选项显示应如何将模板的值提供给过滤器程序。此部分通常为文字选项,有时包含占位符星号 (*) 以显示将值传递到的位置。pattern 和 replacement 选项还可以使用 ed 命令的正则表达式语法,进行从用户输入选项到过滤器选项的更复杂转换。支持 ed 的所有正则表达式语法,其中包括 \( ... \) 和 \n 结构。这些结构可用于提取 pattern 选项的部分,以复制到 replacement 选项,而 & 选项可用于将整个 pattern 选项复制到 replacement 选项。有关更多信息,请参见 ed(1) 手册页。
如果在 pattern 或 replacement 选项中包括了逗号或等号 (=),则在该字符前面添加反斜杠 (\)。在使用 pattern 或 replacement 选项时,将删除其中任何字符前面的反斜杠。