CUPS學習五:打印機基礎

一.打印機基礎

    每個打印機隊列都擁有相關名稱。打印機名必須以字母開頭,且可包含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可以使用很多高質量的打印機驅動程序。

提供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中使用的商業打印機驅動程序

未完待續...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章