一般的にはPCLと呼ばれるPrinter Command Languageは、ヒューレットパッカード社によってプリンタプロトコルとして開発されたページ記述言語(PDL)であり、事実上の業界標準となっている。 もともと1984年に初期のインクジェットプリンタ用に開発されたPCLは、サーマルプリンタ、ドットマトリクス、およびページプリンタ用にさまざまなレベルで発売されている。 HP-GL/2とPJLはそれ以降のバージョンのPCLでサポートされている。[1]
PCLは時々そして誤ってPrinter Control Languageの略語であると言われているが、これは実際にはページ記述言語の別の用語である。
PCLレベル1から5e/5cは、受信した順序で処理および解釈される制御シーケンスを使用するコマンドベースの言語である。 コンシューマーレベルでは、PCLデータストリームは印刷ドライバによって生成される。 PCL出力は、カスタムアプリケーションによっても簡単に生成できる。
HPは、1995年頃にHP LaserJet 4000シリーズプリンタで「PCL 6」を発表した。[3] それは下記の構成である:
PCL 6「Enhanced」アーキテクチャは、モジュール式になり、将来のHPプリンタ用に簡単に修正ができるように変更され、複雑なグラフィックをより速く印刷し、ネットワークトラフィックを減らし、そして、高品質になった。初期の実装では、HPはPCL 6をうまく販売しておらず[要出典]、そのため用語の混乱を招いた。 PCL XLはPCL 6 Enhancedに名前が変更されたが、多くのサードパーティー製品は依然として古い用語を使用している。
PCL 6に準拠していると主張する製品もあるが、PCL 5の下位互換性が含まれていない場合がある。 PCL 6 Enhancedは、主にWindowsおよびCUPSの配下のプリンタードライバによって生成されている。その構造と圧縮方法論のために、カスタムアプリケーションはそれを直接使用することは稀である。
PCL 6 Enhancedは、PostScriptと似た、スタックベースのオブジェクト指向プロトコルである。ただし、PostScriptがバイナリコードまたはプレーンテキストとして送信できるのと異なり、バイナリエンコードに制限されている。 PCLプログラミングドキュメントに示されているプレーンテキストのコマンドとコード例は、プリンタに送信される前にHPのJetASMなどのユーティリティでコンパイルされることを意図している。
PCL 6 Enhancedは、Windows GDIの描画モデルと一致するように設計されている。このように、Windowsプリンタドライバは、ほとんど変更を加えずにGDIコマンドを単純に通過させるだけなので、アプリケーションに戻るまでの時間が短縮されます。マイクロソフトはこの概念を次世代のXPSフォーマットで拡張し、XPSのプリンタ実装を開発している。これは新しい考えではない。Display PostscriptおよびAppleのQuartzと同等であり、圧縮ビットマップがプリンタに送信される「GDI Printers」とは対照的である。