引言
本人從事打印機開發和打印驅動開發的相關工作,深感資料特別是中文資料的匱乏和不成系統,對新入門的從事該行業的人來說,門檻很高。在這里一方面是將開發中遇到的相關知識點整理出來,另一方面也能夠促進自己的學習。打印相關的知識很多,這里分系列的寫出來。主要分以下幾個部分:
一、 概述。這一章節簡單描述PCL語言的來源、演變,以及它的功能和目的。
二、 打印基礎知識。這一章節介紹打印開發所需要的基礎知識,專業術語等。
三、 PCL語言。這一章節介紹PCL語言的組成、命令格式等。
四、 PJL語言。這一章節介紹PJL語言的組成。
五、 PC打印驅動。這一章節介紹PC端打印驅動的流程、模型等。
六、 設備端打印驅動。這一章節簡單介紹如何進行設備端打印驅動的開發。主要是USB gadget的驅動開發。
七、 打印文件解析。這一章節將具體解析打印驅動生成的發到打印機的文件。
八、 Ghostpdl介紹。這一章節主要介紹開源ghostpdl,以及它的功能、作用等。
九、 Ghostpdl編譯和使用。這一章節講述如何編譯ghostpdl和使用ghostpdl軟件,以及可以通過該軟件進行哪些開發。
十、 CUPS。這一章節主要介紹CUPS的功能、作用及使用等。
一、 概述
PCL ,是Printer Command Language的簡寫,由HP公司創造的打印控制語言。目前已經成為業界標准了。它的目的是為各種打印設備提供一系列的經濟且高效的方法,用來控制打印機的特性。
PCL命令嵌在打印任務數據流中,這樣能減少數據傳輸和命令解析的開支。PCL格式和字體設計成能夠很快轉換成高質量、柵格化的打印圖像。
PCL打印語言從PCL1 演變到PCL6。目前使用最廣泛的是PCL5和PCL6,,包括PCL5e、PCL5c和PCL XL。PCL XL即為PCL 6增強版。關於PCL的詳細文檔可參見HP公司的《PCL 5e Technical Reference Manual》、《PCL XL Feature Reference Protocol Class 2.0》等等。這些資料都是十分權威和詳實的。
PCL 6 類打印語言包含三種關鍵組成。一種是PCL 6 增強版,它是為視窗系統的圖形界面優化的,如MicroSoft Windows,OS/2等;第二種是PCL 6 標准版,它提供向后兼容的能力,等價於 PCL 5e 或者 PCL 5c;第三種是字體綜合。
PCL 6 增強版也稱PCL XL,它以最少的命令和數據來描述打印頁面,提高了在視窗系統下的打印效率。
PJL ,是Printer Job Language的簡寫,它提供了不同類別的打印控制。與PCL不同的是,PJL提供任務級別的控制,而PCL和HP-GL/2只控制打印頁面上的打印點的位置。
二、 打印基礎知識
- 測量單位
在打印業界,有好幾種測量單位,分別是英寸、厘米、點。英寸和厘米不用解釋,1英寸=2.54厘米。點,即是物理上的意義,表示一個打印點。任何打印的圖案都是有若干個不同排列組合的點構成。這個點的密度即稱為DPI。DPI表示橫向或縱向上一英寸上有多少個點。我們說的600DPI,則表示在一英寸上有600個點,如下圖1所示。
圖1
PCL坐標系
打印時需要進行定位,這就牽涉到坐標系。PCL的坐標系以左上角為起點,且分為物理頁面和邏輯頁面。邏輯頁面小於物理頁面。物理頁面並不全是打印區域。如下圖2所示。
圖2
打印區域
打印區域是表示物理頁面上的某一部分。物理頁面、邏輯頁面、默認圖像框架和可打印區域定義見下圖3。


上表的單位是像素,即表示邏輯上的一點。如A4頁面尺寸,在600DPI下,寬度為4676pixel,最大長度為7014pixel。一般,我們開發時就用像素這個單位。不同類型的紙張對應不同的尺寸。