2010-11-24 02:11:49 Kenny

PostScript、PCL、GDI

列印語言三足鼎立:PostScriptPCLGDI

 

從印表機控制方式的類別上劃分,印表機的語言大體上可分為兩類:一種是標準化的列印語言,一種是採用非標準方式的點陣圖列印語言。

三足鼎立

     標準化語言的代表分別是adobe公司的PostScript語言和惠普公司的PCL語言,它們已經成為業界標準的兩種語言形式。

     PostScript是一種與設備無關的列印語言,即在定義圖像時可以根本不考慮輸出設備的特性(例如印表機的解析度、紙張大曉等),而且它對文本和圖像實行同樣的處理過程,這就給處理字體帶來了極大的靈活性。在需要輸出到特定設備的時候,PostScript就通過印表機描述檔(PostScript Printer Description)來實現各種印表機的不同特性。PPD檔可以提供包括是否支援半色調控制、頁面大小定義、預設字體、是否支援雙面列印和使用者設定的監控資訊等一系列特定資訊。

     在應用上,每一種應用了的PostScript印表機都要對應特定的PPD檔,需要通過PS驅動程式,才能將各種不同的資料轉換成PS格式。

     PCL語言(Printer Command Language,印表機控制語言)是惠普公司最初於70年代針對自身雷射印表機產品推出的一種印表機分頁描述語言。與adobe不同的是,惠普公司在PCL語言上採取了開放性的策略,允許其他廠商在惠普的印表機產品中自由模仿或使用PCL語言,降低了使用PCL的成本,也拓寬了PCL的普及度。

     PCL3PCL語言裡第一個得到廣泛應用的版本,但是只支援一些簡單的列印任務,PCL4雖然還只能應用在個人印表機中,但增加了對圖形列印的支援,但由於解釋工作比較簡單,PCL4比後期的PCL5PCL6對列印控制器的要求低了很多。

     到了PCL5,已經可以提供類似PostScript相似的功能,開始支援向量字形檔和向量圖像描述,使用了各種壓縮技術來減小資料量,加快資料的傳輸,實現了所見即所得(What You See Is What You Get)的效果。

     1996年,惠普公司發佈了PCL6,使得PCL語言向更加靈活的方向跨進了一大步,成為了一個目標朝向的控制語言,使處理多圖形的檔大大加快,實現了更好的所見即所得,因此可以更好地處理Web頁面。

     PostScriptPCL兩種標準語言相比,GDI是一種非標準的方式,各印表機廠商實現的方式和解釋成的點陣圖格式有很大區別,對列印控制器的要求也各不相同,表現出的性能也有差異,我們也可以把它認為是利用Windows GDIGraphical Device Interface,圖形裝置介面)的點陣圖列印語言。

""鬥豔,各有所長

     從工作流程來看,PostScriptPCL兩種語言都是採用了首先在電腦一端將列印內容解釋成標準的頁面描述檔然後傳送到印表機控制器中,然後在印表機控制器中再將頁面描述檔解釋程可以印表機的點陣影像,都對印表機中的列印控制器有很高的要求,同時要求印表機內部有足夠的記憶體。

     兩種語言的共同優勢是它們的標準化和與設備無關性,對電腦系統資源佔用較少,尤其是PCL的最新版本中還提高了對字形檔、圖形和圖像的解釋能力,因此對於列印品質要求較高的產品,大都採用了此兩類語言。但相對來說,由於對列印控制性能要求較高,一定程度上增加了印表機的成本。所以,相當長的一段時間裡,運用這兩種標準化語言的印表機都是一些針對中、高端商務應用的產品,在滿足大需求的列印符合的同時,還要保證輸出的文字和圖像品質。

     與使用電腦標準描述語言區別的是,GDI方式減少了對列印內容解釋成頁面描述檔,再將頁面描述檔解釋成點陣影像的過程,而是在電腦中直接將列印內容解釋成可以直接列印的光柵點陣圖,因此大大降低了對列印控制器性能和記憶體的要求。由於其對列印控制器要求較低,一定程度上降低了印表機成本。但從另一方面,則增加了對電腦系統資源的佔用,印表機的性能在一定程度上要依賴於電腦的性能。

     由於成本較低,但是列印負荷受到電腦性能影響,所以GDI一直以來都較多地應用在低端個人應用的雷射印表機產品或是小型企業中,或者是一些對圖像要求不高的領域。

取長補短 交相融合

     由於最初設計語言的出發點不同,所以即使同為標準形式的印表機語言,PostScriptPCL在應用效果上在所難免的有所差別。考慮到價格因素,PCL長期以來只被應用在一些中端產品中,但是隨著PCL在圖像上的日臻完善,已經縮小了和PostScript的影像處理差距。一些根據分別採用PCLPostScript語言地黑白和彩色雷射印表機所做的測試表明,使用PCL語言的印表機在處理文本或一些日常辦公軟體下的文檔反而具有非常明顯的速度優勢,列印品質上也同PostScript沒有區別。這樣依靠先天的成本優勢,PCL將會大膽地向高、中、低端各線領域全面跨進,涵蓋從高端商用到低端家用的各個領域。

     PostScript由於從設計之初就注重了影像處理因素,所以得天獨厚的具有可以同時在普通PC平臺和蘋果機平臺上應用的優點,這無疑説明了它在圖像輸出上的成就。但是,隨著印表機市場與日俱增的競爭激烈,以及印表機品種日益的繁多,PostScript恐怕很難再長久地孤守高端這一陣地,結束"曲高和寡"的命運。

     此外,隨著電腦硬體更新和PC升級的加速,對於一般性的使用,即使印表機佔用一些電腦的系統資源,也很難對電腦本身的使用構成太大的影響;同時,採用GDI語言的印表機也會在一定程度上加大印表機內部配備的處理器和記憶體,來縮小這種差距,因此,一直以來被認為和標準頁面語言的處理速度上的差別將伴隨以上兩點而逐漸得到弱化。

     在以往的測試中,GDI方式在色彩方面的表現力與PostScriptPCL都有一定差距,但是近年來,彩色商務辦公已經成為大勢所趨,以往定位於中小型企業採用GDI語言的印表機,為了更好的適應未來的發展市場,將會在圖像及色彩處理上不遺餘力,逼真圖像不再只是標準頁面的天地。

     所以說,未來印表機採用什麼列印語言,應該取決於印表機所要面對的用戶需求,而三種語言的競爭,也會在這種競爭中相互融合,取長補短,把未來印表機的性能推向一個新的高峰。

印表機無法列印或印出不正常的亂碼
文/王唯至 (記者) 2007-07-13
 


新買的印表機,使用起來不是無法列印,就是出現亂碼,有時就算能印了,有些符號、字型印出來就是跟螢幕顯示的不一樣,該怎麼處理?

印表機無法列印,牽涉到驅動程式、應用程式,以及作業系統、網路問題,或是印表機本身故障等多種層次的問題。首先可以先檢查印表機是否缺紙、碳粉安裝是否正確、機殼閉鎖地是否夠完善。

如果印表機本身的狀況一切正常;那麼就再檢查設定的印表機TCP/IP位址是否正確,你可以在用戶端電腦,透過命令列下ping指令,驗證印表機能否正確回應。

上述若一切正常,通常最少能夠在驅動程式處,直接列印出測試頁;或者你也能嘗試透過記事本傳送列印封包,測試印表機是否能正常輸出。

如果實體印表機與網路設定一切正常,卻無法列印測試頁,記事本也無法輸出,那麼就可能是驅動程式問題。驅動程式出錯並非在列印伺服器移除後重新安裝就能解決。重新安裝之前,要先檢查驅動程式版本是否與作業系統相容,而且也要看驅動程式是否支援用戶端作業系統,如Windows Server 2003安裝伺服器版本的驅動程式,那麼Windows 95或Windows 98作業系統的用戶端便無法共享使用,所以必須另外在伺服器上安裝95或98適用的列印驅動程式,供用戶端共享。特別是最新版的作業系統Windows Vista,安裝時則更要注意驅動程式是否能夠支援。
 

透過啟動HP驅動程式的「以點陣方式列印Ture Type字型」功能,可以解決部分特殊字型無法列印的問題。

由於列印是由驅動程式將電腦資料,轉換成印表機能夠理解、處理的語言後,命令印表機藉著這些資訊驅動列印引擎,然後輸出正確的圖文資料。如果你使用的是印表機不支援的列印語言,或是使用列印語言無法解譯的字型,那麼印表機也無法列印出文件,甚至直接輸出成亂碼。

不同印表機廠商幾乎都有各自的列印語言,例如HP的PCL 5(Printing Control Language 5)與PCL6、Epson的EPL、Canon的UFRⅡ,以及Adobe的Postscript(簡稱PS)。目前市面上是以PCL與PS兩種列印語言為主流,不過兩種列印語言的運作方式也大不相同。簡單地說,PCL是要牽涉到設備性能的列印語言,在Windows環境下列印時,先把檔案位圖格式轉換成PCL程式碼,然後再傳送到印表機處理器解譯並且執行列印工作,所以輸出時的速度與品質就會牽涉到印表機本身的處理器速度、解析度,以及紙張類型與尺寸等問題。

而PS則是非印表機廠商Adobe推出的一種頁面描述語言,將要列印的資料先在電腦端轉換為圖形格式,再交由印表機列印,所以可適用於所有印表機,且能夠不受限於印表機的解析度、紙張類型,及不同的支援字形集等,能讓用戶獲得最接近原始檔案的列印品質。一般來說,PCL列印語言在處理Office系列應用程式,或是IE網頁列印時,速度較快;而PS則在輸出專業圖形檔案時,品質呈現較佳。

所以,當用戶列印PCL印表機不支援的特殊字型時,甚至用PCL5印表機,以PCL6列印語言的驅動程式輸出,那麼也會產生亂碼或是完全無法列印的情形。

因此要解決特殊字型亂碼問題,除了選購印表機支援字型集外,最立即的處理方式就是把文件轉換成圖檔列印,或試著用PS列印語言的驅動程式輸出。而HP也在他們的驅動程式內建「以點陣方式列印Ture Type字型」的功能。遇到無法輸出的文字時,就能夠啟用這項功能,增加印表機的字型支援能力。