| FreeBSD handbook中文版11 打印(2)高级打印机设置 A.过滤器 |
 |
作者: 来源: 日期:2007-6-22 12:25:57 点击次数: |
|
#!/bin/sh # # hpvf - Convert GIF files into HP/PCL, then print # Installed in /usr/local/libexec/hpvf PATH=/usr/X11R6/bin:$PATH; export PATH giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ && exit 0 \ || exit 2 它先将GIF 格式转成portable anymap,然后再转成portable graymap,接着再转成 portable bitmap,最后再转成与LaserJet/PCL 兼容的资料。 第32 页FreeBSD 使用手册 下面是使用这个过滤程序的/etc/printcap 例子: # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf: 下面的转换用过滤程序是将由grpff 排版系统所产生的troff 资料转成让PostScript 打印机bamboo 所能打印的格式: #!/bin/sh # # pstf - Convert groff’s troff data into PS, then print. # Installed in /usr/local/libexec/pstf # exec grops | /usr/local/libexec/lprps “$@” 上面的script 再一次使用lprps 与打印机沟通。如果我们的打印机接在并口上,那么 我们可以用下面这个script 取代上面的script: #!/bin/sh # # pstf - Convert groff’s troff data into PS, then print. # Installed in /usr/local/libexec/pstf # exec grops 而如果要使这个过滤程序,我们在/etc/printcap 里的设置: 第33 页FreeBSD 使用手册 :tf=/usr/local/libexec/pstf: 这里有一个让熟悉FORTRAN 的老手惭愧的例子。这是一个让所有可以打印纯文本的打印 机打出FORTRAN-text 的过滤程序。我们将在teak 这台打印机上安装: #!/bin/sh # # hprf - FORTRAN text filter for LaserJet 3si: # Installed in /usr/local/libexec/hprf # printf “\033&k2G” && fpr && printf “\033&l0H” && exit 0 exit 2 我们只要将这个过滤程序在/etc/printcap 文件里指定给teak 这台打印机即可: :rf=/usr/local/libexec/hprf: 最后一个有点复杂的例子。我们要为先前提到的teak 这台打印机新增一个可以将DVI 转成激光打印机能处理的格式。首先,先修改/etc/printcap 文件中关于DVI 过滤程序的位 置: :df=/usr/local/libexec/hpdf: 然后,我们要做出这个过滤程序。我们需要一个能将DVI 转成激光打印机PCL 格式的程 序。FreeBSD port 里(请参考The Ports Collection 这一节)有一个:dvi2xx 是这个程序的 名称。安装这个程序能提供我们dvilj2p 这个能将DVI 转成LaserJet IIp、LaserJet III 以及LaserJet 2000 兼容的格式。 dvilj2p 这个程序使得hpdf 这个过滤程序变得十分的复杂,因为dvilj2p 无法从标准 输入取得资料。它得从文件中读资料。最糟糕的是,这个文件还必需以.dvi 结尾,所以用 /dev/fd/0 作为标准输入是不行的。我们可以用symblic link 产生一个暂时的文件名 (以.dvi 结尾)指向/dev/fd/0 ,然后强迫dvilj2p 从标准输入读取资料。 第34 页FreeBSD 使用手册 另一个问题就是我们无法用/tmp 来存放我们暂时的连接。Symbolic links 的使用者及 群组为bin。而过滤程序是以使用者daemon 的身份在执行。又/tmp 目录设置了sticky bit。 因此虽然过滤程序建立了连接,但是因为这个连接属于其它的使用者而无法删除。 因此,过滤程序将会把symbolic link 建立在目前的目录下,也就是spooling 目录(由 上一篇:FreeBSD handbook中文版11 打印(1)基本设置 下一篇:FreeBSD handbook中文版11 打印(3)使用打印机 |
|
|
 |
| 北京总部: 4006-505-808 |
| 上 海 部: 4006-505-808 |
| 深 圳 部: 4006-505-808 |
| 浙 江 部: 4006-505-808 |
| 广 州 部: 4006-505-808 |
| 重 庆 部: 4006-505-808 |
| 南 京 部: 4006-505-808 |
| 其它地区: 4006-505-808 | |
|
 |
|