2 FreeBSD handbook中文版 11 打印 高级打印机设置 A.过滤器

=============================================================
11.4 高级打印机设置
=============================================================

这一节我们要讨论的是处理特定文件格式的过滤程序、header pages、用网络打印机打
印以及打印机访问权限及打印情况统计的设置方式 。
11.4.1 过滤器
虽然LPD 负责处理网络通讯设定、队列、访问权限控制、以及其它许多打印相关的工作,
但最重要的工作还是由过滤程序来做 。过滤程序是负责与打印机沟通、处理设备依存关系、
以及一些其它特殊的需求 。我们在之前设置打印机时安装了一个最简单,但是可以和配合大
部分打印机工作的文字过滤程序(请阅读安装文字过滤程序这一节) 。
然而,如果我们想要更方便地转换格式、统计打印机使用情况、打印特别的打印机字体
等等,我们应该先了解过滤程序是如何运作的 。这些事情都是由过滤程序处理的 。不幸的是,
通常你得自己提供特定的过滤程序 。不过值得庆幸的是,有很多一般用途的过滤程序可以用,
如果没有的话,要自己做应该也很容易 。
FreeBSD 提供了一个过滤程序/usr/libexec/lpr/lpf 。这个过滤程序可以让大部分的打
印机可以打印纯文本(它只处理文件中的倒退字符以及TAB 字符,并不做统计等工作) 。在
FreeBSD 的ports 里也搜集了许多种不同的过滤程序 。
在这一节里,我们将要讨论下面这些东西:
1. 过滤程序的运作方式这一节将告诉你过滤程序在打印过程中所扮演的角色 。你可以了
解在LPD 使用过滤程序时做了哪些动作 。这些知识也能让你将来遇到过滤程序相关的问
题时能找出问题的针结 。
2. LPD 将所有的打印机都视为可以直接打印纯文本 。因此使用PostScript (以及使用其它
语言) 的打印机就无法直接打出纯文本 。在PostScript 打印机上打印纯文本这一节将
告诉你该怎么做才能解决这个问题 。如果你有PostScript 打印机,那么我建议你看看
这一节 。
第22 页FreeBSD 使用手册
3. PostScript 是一种受欢迎的输出格式 。有些人(包括我)直接撰写PostScript 的程序代
码 。但是PostScript 打印机很贵 。用非PostScript 打印机仿真PostScript 打印机这
一节告诉你如何进一步修改打印机的文字过滤程序使得非PostScript 打印机也能打印
PostScript 的资料 。如果你没有PostScript 打印机,我建议你看看这一节 。
4. 转换用的过滤程序这一节说明如何让特殊的文件格式转换自动化,比如将图形或排版
的资料转换成你的打印机所能了解的 。读完这一节后,你应该可以用lpr -t 命令打印
troff 资料,或是用lpr -d 命令打印TeX DVI 资料,或是用lpr -v 命令打印raster
影像资料,等等 。我建议阅读这一节 。
5. 输出用的过滤程序这一节说明一个LPD 不常用的功能:输出用的过滤程序 。除非你要
打印header pages(请阅读Header Pages),不然你可以略过这一节 。
6. 文字过滤程序:lpf 这一节介绍lpf 命令 。这是由FreeBSD 提供给一般的行式打印机(或
类似行式打印机的激光打印机)使用的简单文字过滤程序 。如果你希望可以快速的设置
打印机对打印纯文本的使用情况的统计,或是你想要消除打印机对倒退字符的错误打
印,那么你应该考虑使用lpf 命令 。
11.4.1.1 过滤器如何工作
上面曾经提到,过滤程序是一个由LPD 运行处理打印机与通讯端口间沟通的程序 。
当LPD 要打印文件时,它会执行过滤程序,同时从过滤程序的标准输入要打印的文件,而将
过滤程序的标准输出给打印机打印,并将过滤程序的错误记录下来(在/etc/printcap 以lf
关键词设置,或是使用默认的/dev/console) 。

推荐阅读