歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux與Win9x/2000打印共享

Linux與Win9x/2000打印共享

日期:2017/2/27 9:50:56   编辑:更多Linux
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打印機的驅動程序。設置步驟如下:




使用Linux上的Samba服務器將Linux上的打印機設置共享。

在Windows9x/2000中添加網絡打印機,即Linux上的共享打印機。

安裝相應型號打印機的PostScript網絡打印機驅動程序。

至此,Windows9x/2000上的打印作業轉換為PostScript文件,發送到Linux的網絡打印機上輸出。



Copyright © Linux教程網 All Rights Reserved