在/etc/printcap 里定义的打印机,至少要有一台取lp 别名。这是默认的打印机名称。
如果使用者没有环境变量PRINTER 设置打印机的名称,且在LPD 的命令也没有指定任何打印
机的话,那么别名为lp 的打印机就会被视为默认的打印机。
通常,我们会将一台打印机的最后一别名取为它的全名,包括制造商以及型号。
当你将打印机的名称及别名设置在/etc/printcap 文件里时,打印机的名称一定要放
在最左边的字段。其它的别名则以垂直的线(|)分开,而在最后一个别名之后加一个冒号(:)。
在下面的例子里,我们大略描述一下/etc/printcap 的骨干。这个例子里定义了两台打印机。
(Diablo 630 以及Panasonic KX-P4455 PostScript 激光打印机。):
#
# /etc/printcap for host rose
#
rattan|line|diablo|lp|Diablo 630 Line Printer:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:
在这个例子里,第一台打印机取名为rattan 而它的别名有line、diablo、lp 以及Diablo
630 Line Printer。这台打印机有lp 这个别名,因此它也是默认的打印机。第二台取名为
bamboo,而它的别名有ps、PS、S、panasonic 以及Panasonic KX-P4455 PostScript v51.4。
11.3.1.4.2 不打印头文件
第12 页FreeBSD 使用手册
LPD spooling 系统默认是为每个打印工作打印header page 的。Header page 包括了送
出打印工作的使用者名称、送出工作的机器名称以及工作的名称。不幸的是,这些额外的信
息可能会妨碍我们做简单的打印机设置测试,因此我们想不要打印header pager。
在/etc/printcap 用sh 关键词为特定的打印机设置不打印header pages。这里有一个
在/etc/printcap 里使用sh 的例子:
#
# /etc/printcap for host rose - no header pages anywhere
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:
注意:我们使用的正确格式:打印机定义的第一行得从第一个字开始写的,而其后的每
一行用TAB 键往内缩一格。而一行如果写不完需要接到下一行时,则以反斜线字符结尾。
11.3.1.4.3 建立spooling 目录
下一步就是建立一个spooling 目录,一个在打印时会用到以及存放一些spooler 需要
的文件的地方。
通常我们会将spooling 目录指定在/var/spool 目录下。你不需要备份spooling 目录,
而建立它也只要以mkdir 命令即可。
通常我们会将spooling 目录以打印机的名称建立,如下所示:
# mkdir /var/spool/printer-name
然而,如果在你的网络中有很多打印机的话,你也许会希望将所有的spooling 目录放
在一个LPD 专用的目录下。以我们的打印机rattan 和bamboo 为例:
# mkdir /var/spool/lpd
# mkdir /var/spool/lpd/rattan
# mkdir /var/spool/lpd/bamboo
注意: 如果你关心的是使用者打印资料的隐私,那么你应该要将spooling 目录的权限
做适当的设置。Spooling 目录应该要属于daemon 这个使用者同时并允许它读、写及搜索,
而其它人都无法访问此目录。因此,我们应该要这样设置:
第13 页FreeBSD 使用手册
# chown daemon.daemon /var/spool/lpd/rattan
# chown daemon.daemon /var/spool/lpd/bamboo
# chmod 770 /var/spool/lpd/rattan
# chmod 770 /var/spool/lpd/bamboo
最后,在/etc/printcap 文件里,你可以用sd 关键词来指定spooling 的目录:
#
# /etc/printcap for host rose - added spooling directories
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:
注意:打印机的名字一定是在定义第一行的第一个字,而其它行都要以TAB 缩进。如果
需要换行则需要在行末加上反斜线字符。
如果你没有用sd 指定spooling 目录,那么系统默认的spooling 目录将会是
/var/spool/lpd 。
11.3.1.4.4 识别打印机设备
在为通讯端口新增/dev 目录下的设备文件这一节里,我们在/dev 目录下选定了要给
FreeBSD 使用与打印机通讯的连接端口。现在我们要告诉LPD 这个信息。当spooling 系统
有工作要打印时,它将会告诉过滤程序(负责送资料给打印机)使用指定的设备。
在/etc/printcap 用lp 关键词指定使用/dev 下的设备名称。
在我们的例子中,我们设置rattan 使用第一个并口,而bamboo 使用第六个串口。因此
在/etc/printcap 中我们设置:
#
# /etc/printcap for host rose - identified what devices to use
#
rattan|line|diablo|lp|Diablo 630 Line Printer:\
:sh:sd=/var/spool/lpd/rattan:\
:lp=/dev/lpt0:
第14 页FreeBSD 使用手册
bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
:sh:sd=/var/spool/lpd/bamboo:\
:lp=/dev/ttyd5:
如果你在/etc/printcap 里没有用lp 关键词指定要使用哪个通讯端口,LPD 将会使用
/dev/lp 为默认的通讯端口。/dev/lp 目前在FreeBSD 中并不存在。
如果你现在安装的打印机是连接在并口上,那么请跳至安装文字过滤程序这一节,否
则,请按照下面这一节继续设置。
11.3.1.4.5 配置spooler 通讯参数
对于连接在串口上的打印机,LPD 设置的传输速率、同位检查、以及其它的通讯参数,
使得过滤程序能送资料到打印机上。这是较有利的。因为:
1. 你只要编辑/etc/printcap 就可以使用不同的通讯参数。不需要去重新编译你的过
滤程序。
2. 允许spooling 系统在多台打印机、多种不同通讯参数设置的情况下用同一个过滤
程序。
在/etc/printcap 设置文件里,下列关键词控制lp 所指定的通讯端口:
br#bps-rate
设置通讯端口传输速度为bps-rate 其中bps-rate 可以是50、75、110 、134、150、
200、300、600、1200、1800、2400、4800、9600、19200 或是38400 bit-per-second。
fc#clear-bits
打开通讯端口后,清除sgttyb 结构里的标记位clear-bits。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



