萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux操作系統打印機配置全攻略 (圖)

Linux操作系統打印機配置全攻略 (圖)

class="152941">

  一、Linux打印系統發展路線圖

  在Unix世界裡,PostScript語言是主要用於打印的接口。所有主要的應用程序都會輸出通用的PostScript頁面,而這些PostScript經過打印系統處理後再被打印出來。打印在Unix世界的演化中總是圍繞著PostScript頁面描述語言展開的。該語言是由Adobe公司開發的,它是一個成熟的、用於描述一個文檔每一頁面內容的程序語言。如今很多打印機中都有一個嵌入式的PostScript解釋器,它負責使用PostScript將頁面在打印紙上再現出來。現在,所有桌面Linux應用程序都有一個打印選項,可以生成PostScript數據來打印整頁的文檔。這種方法和其它面向桌面的操作系統有很大的不同,大部分Unix系統是提交任務至隊列中,並且希望它能夠正確地打印出來。但是並沒有一種統一的收集打印機信息或工作狀態的方法,這嚴重影響了那些需要提供打印能力的Linux應用程序。在Linux中,雖然PostScript是產生打印文檔的事實上的標准,但打印機本身卻並不需要知道PostScript,因為這需要使用到相對比較昂貴的技術。

  在一般情況下,尤其是在低端打印機中,PostScript數據要被翻譯成打印機本地的頁面描述語言。這是通過使用一個特殊的轉換過濾器來完成的。一般而言,一個過濾器實際上就是一個特殊的程序,它可以處理輸入的數據,並且輸出經過加工的數據。現在,Linux打印系統中使用著各種不同的過濾器:轉換過濾器、I/O過程器(負責將數據傳送至設備)、處理過濾器(轉換文檔數據)。打印系統的基礎是一個假脫機程序(Spooler)。它可以管理打印任務隊列,而一個隊列通常和一個打印機相關聯,並且用戶提交的任務都是按照先進先出的原則來處理的。當一個打印任務被處理時,任務中的數據在送達打印機前一般都要通過一定數量的過濾器。

  使用PostScript頁面描述語言進行打印的優點是極大的簡化的設計,不用像Windows系統一樣安裝各種打印機驅動程序。但是它的缺點是許多打印機(特別是低端打印機)不能解析PostScript輸出,Linux系統對此的解決方法是從打印機隊列調用Ghostscript(http://www.ghostscript.com )軟件包支持你的打印機。要查看Ghostscript在你的Linux發行版本上支持什麼打印機列表,可以在命令行下鍵入:

$gs --help


  gs命令會列出一份它支持的打印機和輸出設備的名單。gs命令使用-r選項設置打印分辨率。調整ghostscript的輸出結果,假如gs 的輸出不能讓人滿意,還有一些辦法::輸出的位置及大小。位置,大小,還有圖像在頁面上的視覺比例是由ghostscript中的打印機驅動程序所控制的. 如果你發現打印出來太短, 太長或是大了兩倍, 你可能會想要看一下驅動程序的原始模組並且調整任何所能想到的參數。

  一代的BSD LPD打印系統這個打印系統源自於伯克利的Unix發行版,BSD LPD是用於Linux發行版(比如Slackware)的第一個打印系統。現在仍然有發行版(Debian、Slackware)還會帶有這種假脫機打印程序。BSD打印系統核心的功能僅限於隊列任務。它由一個後台程序(lpd)及一些位於/etc目錄下的配置文件組成,在這些配置文件中有著隊列和屬性的一些定義。在相應的目錄下,還有一系列基本的用於提交、刪除和處理任務使用的命令(lpd、lprm、lpc)。BSD LPR是BSD打印系統重要一個部分,因為它定義了LPD網絡協議,而該協議是用於提交任務至遠程LPD後台程序的,並且它允許Unix工作站實現一個打印服務器的功能。現在,所有的網絡打印機都支持這個協議。由於它使用范圍非常廣泛,所有其它打印系統都要求至少可以和其它的LPD後台程序進行會話。 下面是如何在printcap文件中定義一個遠程隊列的例子。在這個例子中,任務將會被即時傳送至遠程監控程序的隊列之中,並且不會在本地機進行處理。

remote:
:sd=/var/spool/lpd/remote:; :rm=printserver.domain.tld:
:rp=queue:
:mx#0:

  LPD協議傳送數據被分成兩個部分。首先會生成一個描述任務的控制文件,並且傳送該文件。該控制文件包含有源用戶、文件名和所有與工作相關的信息。接著就會傳送數據文件,它的格式完全取決於目前正在使用的打印語言。

  第二個使用較廣、較有影響力的基於BSD的打印系統是LPRng(LPR Next Generation),該系統實際上重寫了原來的BSD LPR系統,但原有概念都保留了下來。保留了printcap文件的格式,但是它還引入了一些新的屬性以使配置過程更加靈活。過濾器定義可以被獨立出來,並且還可以定義真正的I/O過濾器。用戶也可以通過在本地機主目錄下編寫printcap文件來定義自己的隊列。LPRng打印系統的優點:1、不需數據庫環境就可以執行lpr lpc lprm命令。2、打印隊列可以自動轉向。3、打印工作可以自動保留。4、多重打印機可以使用同一打印隊列。5、客戶端不需這些SUID root。6、可以大幅度提高安全性檢查。7、可以使用Printconf工具維護配置文件(/etc/printcap)。LPRng還提供了模擬Unix System V風格的打印命令(lp、lpstat等)。隨LPRng發行的還有IFHP過濾器,它可以用在隊列中,用於自動轉換一些數據格式(比如打印ASCⅡ文本或圖像)。

  通用Unix打印系統(CUPS) 是比較新的打印系統。CUPS 軟件為 Unix/Linux 用戶提供了以有效而可靠的方式來管理打印的方法。它生來就支持 IPP(因特網打印協議),IPP協議的四個主要目的是:1、幫助用戶尋找為了上可用的打印機。2、 傳送打印作業。3、傳送打印機狀態信息。4、取消打印作業。並有 LPD、SMB(服務器消息塊,例如與 Microsoft Windows 連接的打印機)和 JetDirect 接口。CUPS采用的另外一個標准是PPD(PostScript Printer Definition)文件格式,這是Adobe另外一個用於PostScript打印機的標准。從以上可以看出CUPS打印系統是目前Linux打印系統中最好的選擇,從Red hat Linux 9.0開始它取代了LPRng成為Linux缺省安裝的Linux打印系統。Linux支持許多種類的打印機,從老式的針式打印機,到最新的激光打印機,都可以使用。了解目前Linux 支持什麼打印系統非常重要,下面我們看看幾個主流Linux發行版本使用的打印系統。CUPS還采用了很多過濾器用於傳送數據至打印機的方法。與BSD類的假脫機程序不同的是,這是通過一種更加智能的方式來完成的。下面是在CUPS中可用的部分過濾器:

  1.後端過濾器。它可以提供最終數據進行傳送的端點。這些過濾器可用於並口、TCP/IP套接字連接、LPD和其它端點的連接。

  2.文檔轉換過濾器。該過濾器是作為CUPS一個標准配置一起發行的。它可以轉換圖像、ASCⅡ文本、PDF文件和HP-GL/2矢量文檔至PostScript。

  3.接口過濾器。它可以將文檔從PostScript轉換至其它過渡的文件格式。

  表-1 主流Linux發行版本使用的打印系統

發行版本和產品序列號

默認安裝打印系統

可以兼容打印系統

RedHat Enterprise Linux 4.0

CUPS

LPRng

CentOS 4.2

CUPS

LPRng

Mandrake Linux LE2005

CUPS

LPRng

Debian GNU/Linux 3.1r0

BSD LPD

CUPS, LPRng

Slackware Linux 10.2

LPRng

SuSE Linux 9.3

CUPS

Turbo Linux 10F

CUPS

Gentoo 2005.0CUPS無

  CUPS是跨桌面的,也就是說你可以在GNOME或KDE下安裝你的打印機工作。CUPS主要功能:

  Print 將文件發送到特定的URI的打印機; Validate; 設定打印優先級別

  Creat 將文件作為打印作業處理;; Cancal 取消打印作業

  Pause 暫停打印作業;Resume 恢復打印作業

  Purge 清除打印作業

  下面我們看如何為你的Linux系統配置打印系統。以Red Hat Enterprise Linux 4.0。為例。 二、打印機驅動程序查詢和安裝

  一般來說我們購買的普通打印機附帶的光盤中沒有Linux的驅動,如果我們不知道是否可以在Linux下使用。這時可以查看:http://www.linuxprinting.org/ 站點,這裡包含了大量關於在 Linux 上打印的信息。點擊網頁右列的:Printer;Listings。進入查詢界面後輸入打印機廠商和型號後,即可進行查詢。通常會得到四個查詢結果:

  1、perfectly(完全支持Linux下打印,並且可以使用打印機所有功能和打印分辨率)。

  2、mostly(大部分功能支持Linux下打印,有一些小缺陷)。

  3、partially(只有一部分功能支持Linux下打印,許多功能不能實現例如彩色打印機只能打印黑白圖像)

  4、paperweight(完全不支持Linux下打印)。筆者使用的是HP 的designjet430Cannon查詢結果截圖如下:



圖1 打印機查詢結果

copyright © 萬盛學電腦網 all rights reserved