系统管理指南:打印

管理打印过滤器

打印过滤器是将文件的内容类型转换为目标打印机可接受的内容类型的程序。

LP 打印服务使用过滤器完成以下任务:

并不是每个打印过滤器都可以执行所有这些任务。由于每个任务都是打印机特定的,因此可以单独实现任务。

LP 打印服务提供了表 10–3 中列出的 PostScript 过滤器。过滤器程序位于 /usr/lib/lp/postscript 目录中。对于 PostScript 打印,通常只需在设置打印服务器时安装过滤器程序即可。Solaris Print Manager 会自动启用提供的过滤器。但是,如果管理其他打印机,则可能需要管理它们的打印过滤器。

创建打印过滤器

要创建新的打印过滤器,必须编写打印过滤器程序并创建打印过滤器定义。过滤器包含输入类型、输出类型以及提供用于在过滤器内处理命令行参数的语言的复杂选项。有关更多信息和逐步说明,请参见创建新的打印过滤器。

添加、更改、删除和恢复打印过滤器

仅在打印服务器上添加、更换、删除或恢复打印过滤器。

可以使用 lpfilter 命令管理可用过滤器的列表。有关过滤器的系统信息存储在 /etc/lp/filter.table 文件中。lpfilter 命令从过滤器描述符文件中获取要写入表中的有关过滤器的信息。提供的过滤器描述符文件(仅限 PostScript)位于 /etc/lp/fd 目录中。实际的过滤器程序位于 /usr/lib/lp 目录中。

对于可以定义的打印过滤器数目,LP 打印服务没有固定的限制。您可以删除不再使用的过滤器,以避免 LP 打印服务进行多余的处理。(LP 检查所有过滤器以查找适用于特定打印请求的过滤器。)在没有把握的情况下,请不要删除过滤器。

在添加、更改或删除过滤器时,可以覆盖或删除 LP 打印服务提供的一些原始过滤器。如有必要,可以恢复原始的过滤器组。您还可以删除已添加的任何过滤器。

SunOS 软件提供了一组缺省的 PostScript 过滤器。Solaris Print Manager 会自动将这些过滤器添加到打印服务器。与基于 LPD 的打印服务一起使用的一些 TranScript 过滤器具有等效的 SunOS 过滤器功能,但其他 TranScript 过滤器则没有。下表列出了缺省的 PostScript 过滤器并标识了等效的 TranScript 过滤器(如果有)。

表 10–3 缺省的 PostScript 过滤器

PostScript 过滤器 

操作 

等效的 TranScript 过滤器 

download

用于下载字体 

 

dpost

将 ditroff 更改为 PostScript

psdit

postdaisy

将 daisy 更改为 PostScript

 

postdmd

将 dmd 更改为 PostScript

 

postio

用于 PostScript 打印机的串行接口 

pscomm

postior

用于与打印机进行通信 

 

postmd

将点阵灰度级更改为 PostScript 

 

postplot

将 plot 更改为 PostScript

psplot

postprint

将 simple 更改为 PostScript

enscript

postreverse

用于颠倒或选择页面 

psrev

posttek

将 TEK4014 更改为 PostScript

ps4014

SunOS 软件不提供以下过滤器:

为了替换 Enscript 而提供了 postreverse、postprint、postio 和 dpost 过滤器。

Solaris Print Manager 会将缺省的 PostScript 过滤器添加到打印服务器。如果这些过滤器不能满足您的打印需要,请参见如何创建新的打印过滤器。本节提供有关编写定制打印过滤器的信息。

Procedure如何添加打印过滤器

  1. 在打印服务器上,成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。

  2. 添加基于打印过滤器定义的打印过滤器。


    # lpfilter -f filter-name -F filter-definition
    
    -f filter-name

    指定为打印过滤器选择的名称。

    -F filter-definition

    指定打印过滤器定义的名称。

    有关更多信息,请参见 lpfilter(1M) 手册页。

    打印过滤器将添加到打印服务器的 /etc/lp/filter.table 文件中。

  3. 验证是否添加了打印过滤器。


    # lpfilter -f filter-name -l
    

示例 10–9 添加打印过滤器

以下示例说明如何添加具有 daisytroff.fd 打印过滤器定义的 daisytroff 打印过滤器。


# lpfilter -f daisytroff -F /etc/lp/fd/daisytroff.fd

Procedure如何删除打印过滤器

  1. 在打印服务器上,成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。

  2. 删除打印过滤器。


    # lpfilter -f filter-name -x
    
    -f
    filter-name

    指定要删除的打印过滤器的名称。

    -x

    删除指定的过滤器。

    将从打印服务器的 /etc/lp/filter.table 文件中删除打印过滤器。

  3. 验证是否删除了过滤器。


    # lpfilter -f filter-name -l
    

    您应该收到一条错误消息,指示指定名称的过滤器不存在。


示例 10–10 删除打印过滤器

以下示例说明如何删除 daisytroff 打印过滤器。


# lpfilter -f daisytroff -x

Procedure如何查看有关打印过滤器的信息

  1. 在打印服务器上,成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。

  2. 请求有关打印过滤器的信息。


    # lpfilter -f filter-name -l
    
    -f

    指定要查看其信息的打印过滤器。为 filter-name 指定 all 可查看有关所有可用打印过滤器的信息。

    -l

    显示有关指定过滤器的信息。

    显示有关指定的一个或多个打印过滤器的信息。


示例 10–11 查看有关打印过滤器的信息

以下示例说明如何请求有关 postdaisy 打印过滤器的信息。样例命令输出如下所示。


# lpfilter -f postdaisy -l
Input types: daisy
Output types: postscript
Printer types: any
Printers: any
Filter type: slow
Command: /usr/lib/lp/postscript/postdaisy
Options: PAGES * = -o*
Options: COPIES * = -c*
Options: MODES group = -n2
Options: MODES group\=\([2-9]\) = -n\1
Options: MODES portrait = -pp
Options: MODES landscape = -pl
Options: MODES x\=\(\-*[\.0-9]*\) = -x\1
Options: MODES y\=\(\-*[\.0-9]*\) = -y\1
Options: MODES magnify\=\([\.0-9]*\) = -m\1


示例 10–12 查看有关系统上所有打印过滤器的信息

以下示例说明如何显示已添加到系统的所有打印过滤器。样例命令输出如下所示。


# lpfilter -f all -l | grep Filter
(Filter "download")
Filter type: fast
(Filter "postio")
Filter type: fast
(Filter "postior")
Filter type: fast
(Filter "postreverse")
Filter type: slow


示例 10–13 重定向有关打印过滤器的信息

以下示例说明如何将有关 daisytroff 过滤器的信息重定向到文件。如果无意中删除了过滤器定义,则此任务非常有用。


# lpfilter -f daisytroff -l > daisytroff.fd