| 由於家中的 printer 是接在我弟那台 Win2K 電腦上,之前要列印文件都是須要將文件丟到 samba 的分享目錄下,再叫老弟幫我列印出來。這種"繞遠路"的方式其實很早就想加以改進了,今天放假所以就來試試,先由我這裡的 CUPS 將文件處理好,再透過 samba 將 printer job 送至 Win2K 的 printer 直接列印。
Server 端: Windows 2000 Professional
Client 端: Slackware 9.1, CUPS-1.1.19, Samba-2.2.8a
Printer: HP Deskjet 3420 series
步驟:
1. 先確定 printer 已裝妥且可正常運作,並設定成可"共用",假設共用名稱設為 'hpdeskje'。
2. 由於 CUPS 透過 Samba 送入 printer 的"文件"其實是 PS 檔,一般的 printer 並看不懂,因此需要 Adobe 提供的 driver。至 Adobe 網站下載取得 Windows 專用之 PostScript driver:
http://www.adobe.com/support/downloads/detail.jsp?ftpID=1497
下載後執行安裝程式,在設定的過程中,將 printer 設定成分享的,並假設該 printer 名稱為 psptr。基本上 Server 端已準妥就緒了,接下來是 Client 端的設定。
3. 先確定 Win2K 與 Slackware 可彼此透過 samba 看到對方。由於 CUPS 本身 是利用稱為"backends"的模組,將 print job 送至各種不同的"目的地",像是 parallel/serial port, usb port 等等,也包括 LPD, IPP 等協定,但目前的 CUPS 卻沒有包含 Samba 的 backend 模組,原因是只要將 Samba 的 smbspool 拿來用即可。預設 CUPS 將 backend 存放 /usr/lib/cups/backend 目錄下,因此做個 soft link 將 smbspool 指過去稱為 smb:
# ln -s /usr/local/samba/bin/smbspool /usr/lib/cups/backend/smb
接著送出 HUP signal 給 cupsd,可以透過 lpinfo 指令檢查 CUPS 是否已具 SMB 支援:
# killall -HUP cupsd
# lpinfo -v
如預期,在 lpinfo 輸出訊息的最後一行顯示著:
network smb
即代表 CUPS 已可支援 SMB 協定。
4. 設定 CUPS 的 printer 設定。連線至 http://localhost:631/admin 進行 printer 設定,將 "Device:" 設成 "Windows Printer via SAMBA","Device URI" 則須遵守如下的格式:
smb:///
如果有採用使用者認證時,則格式須像這樣:
smb://:@/
其中即代表 Windows 的電腦名稱;即為剛剛在第二步驟時設定的 PostScript Printer 之名稱: psptr;與即登入 Windows 的使用者名稱及密碼。
接下來設定該 printer 所使用的 driver,待設定完成後可於 Printers 管理頁面中列印測試頁,若上述步驟均設定無誤則 Windows 那端的 printer 即會順利地將文件列印出來。
以上,純是我個人的經驗,若我裡面有哪些地方講錯,麻煩各位大大不用客氣幫忙指正囉!! :)
參考文件:
Using Samba, 2nd Edition: http://sg.samba.org/samba/docs/using_samba/toc.html
|