分页: 1 / 1

《NetBSD指南-12.3.配置Ghostscript》

发表于 : 2010-03-02 15:48
leo
现在基本的打印系统可以使用了, 打印PostScript文件的功能可以添加。本例中使用的简单打印机不支持本地打印PostScript文件; 必须使用一个能将PostScript文档转换为一系列打印件可识别命令的程序。 Ghostscript 程序, 可以在packages collection里找到, 可以实现这个目的。 本小节将讲解如何配置lpd使用 Ghostscript 在HP Deskjet 690C上打印PostScript文件.

打印机的第二个id会被产生在 /etc/printcap: 这个新id将使用一个不同的输入过滤器, 这个过滤器将调用Ghostscript来执行PostScript文件的实际打印。 因此, 文本文件将被打印到 lp 打印机,而PostScript文件将被打印到 ps 打印机: 两者全使用同一台物理打印机,但是有不同的打印过滤器。

不同的配置也可以实现同样的结果。 例如, 某一项只能用一个过滤器。因此, 这个过滤器应该有能力自动确认被打印文档的格式, 并使用适当的打印程序。 这个方法是很简单,但是要求更复杂的过滤器; 如果你喜欢它你应该考虑从package collection安装magicfilter 程序: 它可以自动做这个工作和许多其它。

对我们的方法来说, 新的 /etc/printcap 文件看起来像这样:

Example 12.3. /etc/printcap

代码: 全选

lp|local printer|HP DeskJet 690C:\
        :lp=/dev/lpa0:sd=/var/spool/lpd/lp:lf=/var/log/lpd-errs:\
        :sh:pl#66:pw#80:if=/usr/local/libexec/lpfilter:

ps|Ghostscript driver:\
        :lp=/dev/lpa0:sd=/var/spool/lpd/ps:lf=/var/log/lpd-errs:\
        :mx#0:sh:if=/usr/local/libexec/lpfilter-ps:

选项 mx#0 对打印PostScript文件是很重要的,因为它可以消除对输入文件的尺寸限制;PostScript documents往往非常大。 这个 if 选项指向新的过滤文件。 也有一个新的假脱机目录。

下一个步骤被用来产生新的假脱机目录和过滤程序。假脱机目录的步骤同上:

代码: 全选

# cd /var/spool/lpd
# mkdir ps
# chown daemon:daemon ps
# chmod 770 ps
为PostScript输出的过滤程序要比文本输出的过滤程序复杂得多: 这个要打印的程序被提供给解释程序,解释程序可以将它转换成打印机控制语言的一系列命令, 然后将其发送到打印机。 通过优质的NetBSD操作系统和一些强大的免费软件包,我们实现了将一台便宜的彩色打印机转换为可输出PostScript的设备这个目标。 这些 Ghostscript 的配置选项在Ghostscript 文档: cdj550 里进行了描述,cdj550是用来驱动HP打印机的设备.

Example 12.4. /usr/local/libexec/lpfilter-ps

代码: 全选

#!/bin/sh
# Treat LF as CR+LF
printf "\033&k2G" || exit 2
# Print the postscript file
/usr/pkg/bin/gs -dSAFER -dBATCH -dQUIET -dNOPAUSE -q -sDEVICE=cdj550 \
-sOutputFile=- -sPAPERSIZE=a4 - && exit 0
exit 2

总结: 系统上创建了两个不同的打印机名称, 他们指向了同一台物理打印机但是使用不同的选项、不同的过滤器以及不同的假脱机目录。文本文件和PostScript文件全可以打印。要打印PostScript文件必须在系统上安装Ghostscript软件包。