打印机命令语言

**印表機命令語言**（英語：Printer Command Language，簡稱 **PCL**）是惠普公司開發的一種作為印表機協定的頁面描述語言，實際上，它已經成為業界標準。印表機命令語言最初是為 1984 年的早期噴墨印表機所設計的，後來開始發布用於從熱敏印表機、點陣印表機、雷射印表機等不同印表機的命令語言版本。後來的 PCL 版本開始支援 HP-GL 以及 PJL 語言。

偶爾人們也會誤會 PCL 是 _Printer Control Language_，實際上這是錯的。

## PCL 從 1 到 5 綜述

PCL 1 到 5e/5c 有共同的基礎，它們按照所收到的資料的先後順序進行處理與解釋。從使用者的角度來看，可以用印表機驅動程式生成 PCL 資料流。在不同的應用程式中都可以很容易地輸出 PCL。

* **PCL 1** 於 1984 年出現，用於 HP ThinkJet 2225，它帶有基本的文字與圖形印表機功能，解析度最大為 150 DPI。
* **PCL 1+** 隨著 HP QuietJet 2227 發布。
* **PCL 2** 加入了 Electronic Data Processing/Transaction 功能。
* **PCL 3** 於 1984 年隨著最初的 HP LaserJet 出現。它支援點陣圖字型，並且最大解析度提高到 300 DPI。其它支援 PCL 3 的產品包括 HP DeskJet 噴墨印表機、HP 2932 系列點陣印表機以及 HP RuggedWriter 2235 點陣印表機。PCL3 仍然在幾款擊打式印表機上使用以取代過時的 HP 型號。
* **PCL 3+**（單色）以及 **PCL 3c+**（彩色）在後來的 HP DeskJet 以及 HP PhotoSmart 上開始使用。
* **PCL 3GUI** 用在 HP DesignJet 以及一些 DeskJet 系列的印表機產品。它使用與標準 PCL 3 不相容的一種壓縮柵格模式。
* **PCL 4** 於 1985 年隨著 HP LaserJet II 出現。它加入了宏處理、更大的點陣圖字型及圖形。在許多應用程式中仍然在使用 PCL 4。
* **PCL 5** 於 1990 年 3 月隨著 HP LaserJet III 發布。它加入了 Intellifont 字型縮放（現在隸屬於愛克發・吉華集團的 Compugraphics 所開發）、輪廓字型以及 HP-GL/2 向量圖形等功能。
* **PCL 5e**（PCL 5 增強版）於 1992 年 10 月隨著 HP LaserJet 4 發布，它添加了印表機、PC 以及微軟視窗字型間的雙向通信功能。
* **PCL 5c** 於 1992 年在 HP PaintJet 300XL 與 HP Color LaserJet 中增加彩色列印的能力。

## PCL 6 綜述

**PCL 6** 於 1995 年左右發布，它包括：

* **PCL 6 增強版**：它是針對如微軟視窗這樣的圖形化使用者介面進行最佳化的物件導向頁面描述語言，並且進行了壓縮以最佳化效能。這個版本以前稱為 **PCL XL**。
* **PCL 6 標準版**：等價於 PCL 5e 或者 PCL 5c，以提供向下相容的能力。
* **字型合成**：提供可縮放字型、字型管理以及表格及字型的儲存。

PCL 6 增強版的顯著特點有容易進行修改以用於未來的 HP 印表機的新的模組化架構、更快的返回應用程式的速度、更快的列印複雜圖形的速度、更有效的資料傳輸、更好的所見即所得的列印效果、更好的列印品質、更好的保真度、完全的向下相容。在早期的實現中，PCL 6 的市場推廣工作做得不好，導致術語上出現了一些混淆。後來 PCL XL 改名為 PCL 6 增強版，但是許多第三方的產品仍然使用舊的名字。有一些產品聲稱與 PCL 6 增強版相容，但是可能並不包括 PCL 5 的後向相容性。PCL 6 增強版主要是微軟視窗以及 CUPS 的印表機驅動程式所使用。由於其結構以及壓縮方法的問題，普通的應用程式很少使用這種格式。

PCL 6 增強版是一個類似於 PostScript 的基於堆疊、物件導向的協定。但是它與 PostScript 既可以使用二進位代碼、又可以使用文字不同，PCL 6 增強版只能使用二進位代碼。PCL 編程文件中的文字的命令及代碼都必須用 HP 的 JetASM 這樣的工具進行編譯才能傳送到印表機進行列印。或許是由於 PCL 6 的設計側重於更小的資料量，因此其運算子靈活性與正交性不如 PostScript。

PCL 6 增強版的設計與微軟視窗圖形裝置介面相匹配。按照這種方式，視窗印表機驅動程式只是簡單地傳送 GDI 命令，很少對資料進行修改，因此返回應用程式的速度也比較快。微軟公司用它的新一代 XPS 格式擴充了這個概念，支援 XPS 的印表機的開發工作正在進行中。這不是一個新的概念，它與 Display Postscript 以及蘋果公司的 Quartz 類似，與直接將壓縮點陣圖傳送到印表機的「GDI 印表機」有所不同。

### PCL 6 類的版本

#### Class 1.1

* **繪圖工具**：支援直線、圓弧／橢圓／弦、矩形及圓角矩形、多邊形、貝塞爾路徑、剪下路徑、點陣圖像、掃描線、柵格運算。
* **色彩處理**：支援 1/4/8 - 位調色盤、RGB／灰度色彩空間。支援自訂的半色調 pattern，最多支援 256 種 pattern。
* **壓縮**：支援行程長度編碼。
* **測量單位**：英寸、毫米、十分之一毫米。
* **紙張處理**：支援自訂或者預定義的紙張，包括常見的 Letter、Legal、A4 等。可以選擇從手動進紙、紙匣進紙。紙張可以設定水平或者豎直方向，可以設定縱向、橫向以及橫向與縱向旋轉 180 度。
* **字型**：支援點陣圖以及 TrueType 字型，支援 8 或者 16 位的 code points。所用字元集與 PCL 5 不同。當使用點陣圖字型的時候，許多縮放命令都不能使用。當使用 TrueType 字型的時候，不支援可變長度描述符以及連續塊參數。輪廓字型可以旋轉、縮放、切變。

#### Class 2.0

* **壓縮**：添加了 JPEG。
* **紙張處理**：紙張可以輸出到高達 256 個不同的紙盒中。添加了 A6 以及 Japanese B6 兩種預定義的紙張。添加第三個預設紙匣，248 個外部紙匣。
* **字型**：可以縱向寫字。

#### Class 2.1

* **色彩處理**：添加了色彩匹配特性。
* **壓縮**：添加了 Delta Row 資料壓縮。
* **紙張處理**：在生成一個新頁面時方向、紙張大小可選。添加 B5、JIS 8K、JIS 16K、JIS Exec 紙張大小。

#### Class 3.0

* **色彩處理**：允許向量圖形、點陣圖以及文字使用不同的半色調設定。支援自適應的半色調處理。
* **協定**：支援 PCL passthrough，允許 PCL 6 資料流使用 PCL 5 的特點。但是，當使用這個特性的時候，無法保留一些 PCL 6 的狀態。
* **字型**：支援 PCL 字型。

## PJL 綜述

**PJL**（Printer Job Language）是 HP LaserJet IIIsi 上引入的。PJL 添加了列印任務級別的控制，如印表機語言切換、任務切割、環境變數、狀態讀取、裝置存在性檢查以及檔案系統命令。**PJL** 以 "\x1B%-12345X@PJL \x0D" 開始，以 "\x1B%-12345X" 結束，其中每條指令應當獨占一行，指令間需要有 carriage return（0x0D）。使用者可以自訂指令。

## 外部連結

* PCL 5e Technical Quick Reference Guide (PDF). HP. [2006-06-23]. （原始內容 (PDF) 存檔於 2006-07-01）.
* PCL 5e Technical Reference Manual Part 1 (PDF). HP. [2006-06-23]. （原始內容 (PDF) 存檔於 2006-07-04）.
* PCL 5e Technical Reference Manual Part 2 (PDF). HP. [2006-06-23]. （原始內容 (PDF) 存檔於 2006-07-04）.
* PCL 5 Color Technical Reference Manual (PDF). HP. [2006-09-11]. （原始內容 (PDF) 存檔於 2006-11-08）.
* PCL 5 Comparison Guide (PDF). HP. [2006-06-23]. （原始內容 (PDF) 存檔於 2006-02-18）.
* PCL 5 Comparison Guide Addendum (PDF). HP. [2006-06-23]. （原始內容 (PDF) 存檔於 2006-07-01）.
* PCL XL Feature Reference Protocol Class 2.0 (PDF). HP. [2006-06-23]. （原始內容存檔 (PDF) 於 2006-05-03）.
* PCL XL Feature Reference Protocol Class 3.0 Supplement (PDF). HP. [2006-06-23].
* HP Printer Job Language Technical Reference Manual (bpl13208) (PDF). HP. 2003 [2003-12-06]. （原始內容存檔 (PDF) 於 2014-07-15）.
* HP Printer Job Language Technical Reference Addendum (bpl13207) (PDF). HP. 2003 [2003-06-01]. （原始內容存檔 (PDF) 於 2014-04-30）.
* History of Printer Command Language (PCL). HP. [2006-06-24]. （原始內容存檔於 2005-11-27）.
* What Is the Enhanced PCL XL or PCL 6 Driver?. HP. [2006-06-24]. （原始內容存檔於 2006-04-04）.
* PCL 3 and PCL 5/6 Features and Differences. HP. [2006-06-24]. （原始內容存檔於 2006-04-04）.
* HP RuggedWriter Printer - Product Specifications. HP. [2006-06-24]. （原始內容存檔於 2007-10-24）.
* PCLPrinter Yahoo! group（頁面存檔備份，存於網際網路檔案館）專業 HP PCL 應用開發
* massmind language PCL（頁面存檔備份，存於網際網路檔案館）參考／FAQs
* PageTech（頁面存檔備份，存於網際網路檔案館）專注於 HP PCL 變換、Intellifont & TrueType 字形轉換工具及相關技術
* Swiftview（頁面存檔備份，存於網際網路檔案館）提供檢視、列印及轉換 PCL 的產品
* RedTitan（頁面存檔備份，存於網際網路檔案館）專業的檢視及變換技術
* E.O.E.'s JetASM page 包括 PCL 6 規範及工具。