Q1. 打印时如何消除“台阶”现象?
A1. 有些打印机得每行给结束符,否则就会出现打印的台阶现象。 打印机预期的结束符是回车/新行符(DOS 系统),而 UNIX 系统在结束一行时只加一个新行符。 解决这个问题的最简便办法是检查是否可用某种开关控制打印机,使其能在这两种打印之间转换, 有时可用一个 DIP 开关,或可在打印前先发送一个换码信号。如要采用第二种办法, 得先设立一个过滤器(见 Q2)。
最快的解决办法是在指令行使用过滤器。例如:
$ cat thesis.txt | todos | lpr
Q2. 什么是过滤器?
A2. 过滤器是一套软件,它可从标准输入(stdin)读入资料,然后对读入的资料进行动作, 再以标准输出(stdout)写出。过滤器的用处佷多,包括可用于文本处理。
Q3. 什么是魔术过滤器(magic filter)?
A3. 魔术过滤器是一种根据文档的种类采取行动的过滤器。例如,如果文档是没有排版格式的文本文档时, 则利用一般打印方式打印。如果文档是 PostScript 文档或其他格式文档,则用其他方式打印 ( ghostscript )。常用的魔术过滤器有 magicfilter 和 APSfilter。使用这类过滤器的一项要点是在安装过滤器之前必须先安装应用软件。
需要注意这项要点的理由是在安装 magicfilter 时,这个魔术过滤器会查询系统中装有何种打印程序 (例如 ghostscript,如果找到 ghostscript,则 magicfilter 就知道它能处理 PostScript 格式的文档),然后根据找到的打印程序作出相应的设定。如果系统要处理所有打印文档, 可能至少得安装下列程序:
Q4. 何谓 Windows 打印系统(WPS)?Linux 能用这个打印系统吗?
A4. 也许。只接受 WPS 指令的打印机无法用于 Linux 系统。接受 WPS 指令和其他打印指令的打印机 (如 Canon BJC 610 打印机)就可使用,只要将其设置成 WPS 格式以外的格式即可。其他打印机, 例如有些 HP DeskJet 820Cxi/Cse 打印机就*无法*用于 Linux。不过,尽管如此, Linux 可作为 Win95 机器的打印伺服器(见 Samba),因为 Win95 有这些打印机的驱动程序。
Q5. 这个系统怎么这么烂?只能打印 6 页,超过 6 页就显示“file too large (文档太长)”。
A5. 在 /etc/printcap 档中有一个参数与打印的文档长度有关。默认值是 1000 盘区(约 500 k)。 对 PostScript 这类文档而言,这大约是 7-8 页左右的长度。因此务必在打印机的设定中加入下列内容:
mx=0
附加这个指令的主要原因是不使用假脱机。另一个完成这项工作的方法是用 lpr
在假脱机目录内对打印的文档生成软连接。务必记得每次均需在 lpr 指令中使用 -s
选项。