一.打印機基礎
每個打印機隊列都擁有相關名稱。打印機名必須以字母開頭,且可包含127個字母、數字和下劃線(_)。由於不區分大小寫,所以PRINTER、Printer和printer都相同。
1. 打印機設備
打印機隊列擁有相關的設備。設備可以是並行口、網絡接口或後臺程序支持的任何其他接口。CUPS中的設備使用統一資源標識符(URI),它是Web瀏覽器中使用的統一資源定位符(URL)的更通用的形式。例如,linux中的第一個並行口通常使用並行設備URI:/dev/lp0。
1.1 獲取可用設備的列表
運行lpinfo命令後可以看到受支持設備的完整列表。
-v 選項表示你要得到可用設備的列表。每一行的第一個字是設備的類型(直接、文件、網絡或串行)。其後是該設備的設備URI或模式名。文件設備具有file://directory/filename形式的設備URI,而網絡設備使用人們更爲熟悉的scheme://server/path形式。
某些後臺程序也支持選項。這些選項添加在URI的末級,並以問號開頭。在前面的設別列表中,串口URI中的?baud=115200選項指定了該端口支持的最大波特率。還可以指定其他選項,如奇偶校驗、數據位和流控制。
1.2 文件設備
文件設備允許配置打印機打印文件以進行測試,或者將打印文件發送給設備或命名管道。文件的絕對路徑被添加到file:模式之後,形成URI:
file:/foo/bar/filename.prn
文件設備不支持任何選項
注意:在CUPS中,文件設備是作爲內部設備實現的。這可防止使用打印機打印,原始打印文件,這是因爲沒有合適的過濾器,以將打印作業真正複製給文件。
此外,文件設備還覆蓋正常文件。由於cupsd通常以root身份運行,所以千萬不要配置打印機而使其指向/etc/passwd之類的重要文件。
1.3 HTTP和IPP設備
HTTP和IPP設備允許你將打印作業發送給打印機或支持IPP的服務器。HTTP設備使用"http:"模式名處理URI,而IPP使用"ipp:"模式名處理URI。這些設備不支持設備URI中的任何選項。但只需少量的改動,打印作業選項就可被傳送給遠端設備。
如果遠端設備需要的話,在設備URI中還可嵌入用戶名和密碼:
http://username:password@server/path
ipp://username:password@server/path
CUPS服務器支持使用下列URI的打印機:
http://server/printers/name
http://server:port/printers/name
ipp://server/printer/name
ipp://server:port/printers/name
此處name是打印機名。類似地,可使用下列URI:
http://server/classes/name
http://server:port/classes/name
ipp://server/classes/name
ipp://server:port/classes/name
帶有網絡接口的打印機和外部網絡打印服務器使用不同的URI。
1.4 LPD設備
LPD設備支持傳統逐行打印機守護協議。該協議在RFC1179中說明。Microsoft在TCP/IP Printing Service中實現了該協議。
LPD設備使用的URI爲:
lpd://server/name
此處name是遠程打印機隊列的名稱
大多數LPD打印機只需要基本URI:
lpd://server/name
如果打印作業到達了打印機,但並不進行打印,則標題和順序選項會糾正這種情形:
lpd://server/name?banner=yes
lpd://server/name?order=control,data
lpd://server/name?banner=yes+order=control,data
大多數網絡打印機和打印服務器一般會忽略輸出格式。
1.5 並行設備
並行設備支持系統中的標準並逐行打印機端口。設備URI由模式名及其後的設備文件名組成。下列URI在各個版本的Linux中都可使用,且都指第一個並行端口:
parallel:/dev/lp0
parallel:/dev/par0
parallel:/dev/parallel/0
要確定系統所用的設備文件名,可使用上述lpinfo命令。並行設備不支持任何選項。
1.6 串行設備
串行設備支持系統中的標準RS-232串行端口。設備URI由模式名及其後的設備文件名和任意選項組成。下列URI在各個版本的Linux中都可使用,且都指第一個串行端口:
serial:/dev/ttys0
serial:/dev/serial/0
串行後臺程序支持若干選項:
選項 | s說明 |
---|---|
baud = N | 設置串口的速度,以位/秒(波特率)爲單位。默認值通常是9600波特率。最大值由ipinfo命令提示 |
bits = 7 | 將每個字符的數據位數設爲7 |
bits = 8 | 將每個字符的數據位數設爲8(默認值) |
flow = rtscts | 設置流控制,以使用request-to-send(RTS)和clear-to-send(CTS)信號線 |
flow = dtrdsr | 設置流控制,以使用data-terminal-ready(DTR)和data-set-ready(DSR)信號線 |
flow = hard | 設置流控制,以使用request-to-send(RTS)和clear-to-send(CTS)信號線 |
flow = none | 安全不使用流控制(默認值) |
flow = soft | 使用XON和XOFF字符執行流控制。該方法對於打印機一般不太可靠 |
parity = even | 發送每個字符的同時均發送奇偶校驗位。所有位的總和必須爲偶數 |
parity = none | 不發送奇偶校驗位(默認值) |
parity = odd | 發送每個字符的同時均發送奇偶校驗位。所有位的總和必須爲奇數 |
在以19200波特工作的端口1上的串逐行打印機如要使用7個數據位、奇偶校驗和DTE-DSR流控制,則需要使用下列設備URI:
serial://dev/ttys0?baud=19200+bits=7+parity=even+flow=dtedsr
1.7 SMB設備
SMB設備支持使用SMB協議的Windows打印機進行打印。它是由SAMBA軟件提供的。
SMB打印機的設備URI如下:
smb://workgroup/server/name
此處workgroup是服務器所屬工作組的名稱,server是服務器的NetBIOS名稱,而那麼是打印機的共享名。“ESP”工作組中“foo”服務器上名爲“bar”的打印機的URI如下所示:
smb://ESP/foo/bar
如果共享打印機需要用戶名和口令,則它們的URI可能採用下列形式:
smb://username:password@workgroup/server/name
1.8 Socket設備
通過使用TCP/IP Socket,socket設備支持直接打印,這通常稱爲AppSocket打印或JetDirect協議。其設備URI只需要服務器名稱和可選的端口號:
socket://server
socket://server:port
默認端口號爲9100。所有的HP JetDirect接口和許多其他網絡打印機都使用該端口號。
socket設備是網絡打印機或服務器支持的性能最好且最可靠的設備。socket設備也可以將打印數據以流的形式發送給打印機,而其他網絡設別則需要將打印數據存儲在臨時文件中,然後纔將此文件發送給打印機。
1.9 USB 設備
USB設備支持通用串行總線(USB)進行打印。USB打印機的設備URI各式各樣,Linux的各個發行包使用的設備URI也不盡相同。例如:
usb:/dev/upltN
usb:/dev/unlptN
usb:/dev/usblpN
usb:/dev/usb/lpN
usb:/dev/usb/usblpN
此處N是以0開頭的USB打印機編號。與並行設別類似,USB設備不支持任何選項。
2. 打印機驅動程序
打印機隊列通常也擁有相關的PostScript打印機說明(PPD)文件。PPD文件說明每臺打印機的功能、所支持的頁面大小等。CUPS中的PostScript和非PostScript打印機都使用PPD文件。你可以直接從打印機製造商那裏獲取PostScript打印機的PPD文件。Adobe公司維護着一個許可打印機所有的PPD文件的檔案庫,其網址如下:
http://www.adobe.com/prodindex/printerdrivers/winppd.html
非PostScript打印機的PPD文件有五種來源。首先,CUPS就帶有8份PPD文件,這些文件爲大量的EPSON、Hewlett Packard和Okidata打印機提供了基本的打印服務。由於編寫這些事例驅動程序是爲了支持儘可能多的打印機,所以他們只提供基本的打印功能。尤其是,噴墨打印機驅動程序的質量大打則扣。
所幸的是,CUPS可以使用很多高質量的打印機驅動程序。
URL | s說明 |
---|---|
http://www.linuxprinting.org/cups-doc.html | CUPS-o-matic:在CUPS中使用Ghostscript打印機驅動程序 |
http://oss.software.ibm.com/developer/ opensource/linuxprojects/omni |
IBM開發的OMNI打印機驅動程序 |
http://gimp-print.sourceforge.net/ | 在CUPS中使用的相片質量級的免費打印機驅動程序 |
http://www.easysw.com/printpro | 在CUPS中使用的商業打印機驅動程序 |
未完待續...