Microsoft公司以其Windows9x/2000等强大的攻势占领操作系统市场,此时,大多数厂商已不能与之抗衡,而Linux作为一个全新且免费的操作系统正成为网络系统中一只重要力量。随着网络技术的发展发挥的作用也将越来越大。众所周知,“资源共享”在网络中有着重要意义。笔者在实际工作中,对Linux与Windows9x/2000的资源共享有深入了解,下面就以如何实现“打印机”共享进行说明。
一 在Linux上使用Windows9x/2000上的打印机
Server Message Buffer(SMB)协议能够实现Windows9x/2000局域网上打印机共享,Linux也能使用SMB实现与Windows9x/2000等操作系统上的打印机共享,其位于Samba软件包中(Samba软件包可以从提供免费的Linux网站上获得)。实现Linux上使用Windows9x/2000上的打印机,设置步骤如下:
(1)正确安装和配置Samba服务器。
(2)将运行Windows9x/2000上的打印机设置为共享。
(3)在Linux系统的/etc/printcap中为网络打印机建立一个新的队列,如下:
smb: :sd=/var/spool/lpd/smb: :mx # 0: :sh: :lp=/dev/null: :af=/var/spool/lpd/smb/acct: :if=/var/spool/lpd/smb/filter:
将Samba软件包提供的smbprint拷贝到Samba安装目录/bin子目录里并设置成可执行模式。
(4)在/var/spool/lpd/smb/目录下,创建打印过滤器文件filter。
# ! /bin/shDEVICE=“打印机型号名称(如:LJET4)”RESOLUTION=600*600PAPERSIZE=“打印纸型号(如:A4)”SENDEOF=nenscript -TUS -ZB -p-|if [" $ DEVICE"="PostScript"]; thencat - | /usr/local/samba/bin/smbprint –elsegs -q -s DEVICE=$DEVICE -r $RESOLUTION -s PAPERSIZE=$PAPERSIZE -d NOPAUSE -d SAFER -s Outputfile=-- | /usr/local/samba/bin/smbprint –fiif ["$ SENDEOF"!=""]; thenprintf""fiexit 0
以上smbprint运行时需要一个.config的打印信息文件,这个文件在printcap定义的/var/spool/lpd/smb目录下建立,如下:
server=“打印服务器名称(如:SISKIN)”
service=“打印机型号名称(如:LJET4)”
password=“网络打印机共享名及口令”
(5)重新启动打印管理器
# lpc restart all
(6) 打印
% lpr –P smb 文件名
需要注意的是:smbprint在第一次使用网络打印队列前,要保证/tmp下没有smb-print.log这个缺省日志文件,它在smbprint第一次运行时会自动创建。
二 在Windwos9x/2000上使用Linux上的打印机
在Windows9x/2000看来Linux上的共享打印机分为PCL和PostScript两种打印机,使用Linux中RedHat的printtool产生的打印机队列,打印过滤器会自动区分PCL文件和其它格式的文件,所以从外界看来是PCL打印机。而本例使用的简单打印过滤器产生的打印机队列,没有区分文本文件和PCL文件,必须使用PostScript打印机的驱动程序。设置步骤如下:
使用Linux上的Samba服务器将Linux上的打印机设置共享。
在Windows9x/2000中添加网络打印机,即Linux上的共享打印机。
安装相应型号打印机的PostScript网络打印机驱动程序。
至此,Windows9x/2000上的打印作业转换为PostScript文件,发送到Linux的网络打印机上输出。