当前位置:Linux教程 - Linux资讯 - Linux与Win9x/2000打印共享

Linux与Win9x/2000打印共享

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/sh

DEVICE=“打印机型号名称(如:LJET4)”

RESOLUTION=600*600

PAPERSIZE=“打印纸型号(如:A4)”

SENDEOF=

nenscript -TUS -ZB -p- 

if [" $ DEVICE"="PostScript"]; then

cat -   /usr/local/samba/bin/smbprint –

else

gs -q -s DEVICE=$DEVICE \

-r $RESOLUTION \

-s PAPERSIZE=$PAPERSIZE \

-d NOPAUSE \

-d SAFER \

-s Outputfile=--   /usr/local/samba/bin/smbprint –

fi

if ["$ SENDEOF"!=""]; then

printf""

fi

exit 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打印机的驱动程序。设置步骤如下:

[1] [2] 下一页 


使用Linux上的Samba服务器将Linux上的打印机设置共享。

在Windows9x/2000中添加网络打印机,即Linux上的共享打印机。

安装相应型号打印机的PostScript网络打印机驱动程序。

至此,Windows9x/2000上的打印作业转换为PostScript文件,发送到Linux的网络打印机上输出。

(出处:http://www.sheup.com)


上一页 [1] [2]