FreeBSD handbook中文版 11 打印 (2)高级打印机…

2008-02-23 08:01:50来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

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

11.4.2 Header Pages
如果你有很多使用者使用不同的打印机,那么你也许会觉得需要打印header pages。
Header pages,也称做banner 或burst pages,是用来辨认打出来的工作是属于谁的。通
常header pages 以粗体的大字,可能再加上外框打出来的,如此,使用者才能快速的在一堆
打出的结果找到属于自己的部分。不过header page 的缺点就是每个工作都会多使用一张纸
来打印header page。它的功用可能不会超过一分钟,而最后的下场都是丢进资源回收箱或是
垃圾筒。(不过header pages 是一份工作一张,而不是一个文件一张,所以纸张的浪费可能没
有你想象的那么严重)。
如果你的打印机可以直接打印纯文本的话,那么LPD 可以自动为你的输出加上header
pages。如果你的打印机是PostScript 的,那么你将会需要额外的程序来产生header page;请
阅读在PostScript 打印机上打印Header Pages 这一节。
11.4.2.1 启用header pages
在简单的打印机设置这节里,我们在/etc/printcap 文件里利用设置sh 以不打印header
page (sh 即“suppress header”的意思)。如果某一台打印机要打印header pages 的话,那么只
要将sh 关键词删除就行了。
看起来是不是很简单?
没错。你也许需要提供一个输出用过滤程序将初始化句柄送给打印机。下面是一个适用
于Hewlett Packard PCL 兼容打印机使用的输出用过滤程序:
#!/bin/sh
#
# hpof - Output filter for Hewlett Packard PCL-compatible printers
# Installed in /usr/local/libexec/hpof
printf “\033&k2G” || exit 2
第39 页FreeBSD 使用手册
exec /usr/libexec/lpr/lpf
我们用of 关键词来指定输出用过滤程序的路径。请阅读输出用的过滤程序这一节以
取得更多的信息。
下面是一个为我们先前提到的打印机teak 在teak 文件里设置要打印header pages 及输
出用过滤程序的例子:
#
# /etc/printcap for host orchid
#
teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
:lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
:if=/usr/local/libexec/hpif:\
:vf=/usr/local/libexec/hpvf:\
:of=/usr/local/libexec/hpof:
现在,当使用者用teak 打印时,它们每个工作都会有一张header page。如果使用者们
愿意花时间自己找出自己打出的东西,那么它们可以用lpr -h 命令设置不打出header pages;
请阅读Header Page 参数以得知更多lpr 的参数。
注意: LPD 打完header page 后会送出form feed 字符。如果你的打印机送出纸张的命令
不是用这个字符,你可以在/etc/printcap 文件中用ff 关键词指定。
11.4.2.2 控制header pages
如果选择要打印header pages,LPD 将会产生出long header,这将使用者、机器以及工
作名称以大字打印在一整页上。这里有一个例子(kelly 从rose 这台印机打印outline 这个工
作):
k ll ll
k l l
k l l
k k eeee l l y y
k k e e l l y y
k k eeeeee l l y y
kk k e l l y y
第40 页ll
FreeBSD 使用手册
k k e e l l y yy
k k eeee lll lll yyy y
y
y y
yyyy
t l i
t l
oooo u u ttttt l ii n nnn eeee
· o u u t l i nn n e e
· o u u t l i n n eeeeee
· o u u t l i n n e
· o u uu t t l i n n e e
oooo uuu u tt lll iii n n eeee
r rrr oooo ssss eeee
rr r o o s s e e
r o o ss eeeeee
r o o ss e
r o o s s e e
r oooo ssss eeee
Job: outline
Date: Sun Sep 17 11:04:58 1995
LPD 在打印完这些后会送出form feed 字符,使得真正的打印工作会以新的一页开始打
印(除非你在/etc/printcap 文件为指定的打印机设置了sf (supress form feeds))。
第41 页FreeBSD 使用手册
如果你希望LPD 打印short header,那么在/etc/printcap 文件里使用sb (short banner)
即可。这样打出来的header page 看起来会像下面这个样子:
rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995
LPD 的默认值是先打印header page 再打印工作。如果你想要调换顺序,那么在
/etc/printcap 里使用hl (header last) 即可。
11.4.2.3 统计打印
如果我们打印LPD 内建的header pages,那么在做统计时可能会遇到一个问题:header
pages 得免费提供。为什么?因为只有控制打印header page 的输出用过滤程序可以在打印
header pages 时做打印统计,但是这个过滤程序却没有使用者及机器的资料或是一个统计资
料文件,所以无法向使用者收钱。我们也不能在文字过滤程序或是转换用过滤程序(这些过
滤程序可以直接取得使用者及机的资料)将统计结果都“多加上一页”,因为使用者可以用
lpr -h 命令设置不要打印header page,而你可能就向这些使用者多收了打印header page 的
费用。基本上,lpr -h 是许多较环保的使用者喜好的参数,你无法鼓励别人不去使用它。
而修改每个过滤程序使它们都可以打出header page 也是不可行的(虽然这么做就可以正
确的计费)。因为LPD 并不会把使用者有没有使用-h 的信息传给过滤程序,这么一来,即
使使用者下了lpr -h 的命令要求不打印header page,它仍然会因为得到一张header page 而
多收取了这个费用。
那么,有什么好办法呢?
你可以:
1. 接收LPD 的缺点,不收取打印header page 的费用。
2. 安装可以取代LPD 的程序,比如说LPRng 或是PLP。请参考标准Spooler 之外的选择
这一节所介绍其它可以替代LPD 的程序。
3. 撰写一个聪明的输出用过滤程序。在打印header page 及纯文本时,如果没有文字(输入
用)过滤程序,那么一般的输出用过滤程序只做初始化打印机以及一些简单的字符转换
工作。如果有设置文字过滤程序,那么LPD 只会用输出用过滤程序来做打印header page

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:在FREEBSD 5中使用MRTG画出Packet图表

下一篇:FreeBSD handbook中文版 11 打印 (2)高级打印机设置 A.过滤器