プリンターコマンド言語(Printer Command Language, PCL)は、ページ記述言語および制御プロトコルの一群で、もともとはヒューレット・パッカードによってプリンターの駆動とページレイアウトの管理のために開発されました。PCLは、印刷されるページの内容を、エスケープシーケンス、バイナリブロック、ラスターデータを組み合わせて表現します。完全なページ解釈系と比べて、ホスト側とプリンター側の処理負荷やメモリ要件を比較的低く抑えられるよう、コンパクトで効率的に設計されています。

目的と基本的な動作

PCLは、用紙サイズや給紙元の選択、書体の指定、線や図形の描画、ビットマップの埋め込み、ラスター画像の転送などをプリンターに指示します。コマンドは通常、シリアルなストリームとして送られます。エスケープシーケンスでモードやフォントを選択し、バイナリブロックで画像やビットマップのデータを運びます。PCLの一部のモードでは、プリンター内蔵フォントと単純なコマンドを前提にしてデータ転送量を最小化します。一方、ほかのモードでは、デバイス側でのレンダリング、圧縮、より構造化されたオブジェクト記述をサポートします。

主なバージョンと特徴

PCLは、プリンターやホストシステムの新しい機能に対応するため、いくつかのレベルへと発展してきました。主な変種には次のものがあります。

  • PCL3 / PCL3c – 基本的なテキストとビットマップグラフィックス向けの初期のラスター型変種です。PCL3cはカラーとグレースケールの機能を追加し、低価格のインクジェット機器で一般的です。これらの版は、ラスターまたはビットマップフォント(ラスター フォント)と限定的な解像度出力に依存します。
  • PCL4 – 繰り返し使う図形要素を簡潔に扱えるよう、マクロ機能とより大きなビットマップ処理を導入し、基本的な描画プリミティブを扱いやすくしました(ビットマップ処理)。
  • PCL5 / PCL5e / PCL5c – スケーラブルフォントの処理、グラフィックスプリミティブの改善、HPGL/2ベクターグラフィックスのサポートを追加しました。PCL5eは双方向通信のサポートを拡張し、Windowsフォントとの統合を改善しました。PCL5cはカラーパレットと色選択の機能を追加しました。
  • PCL XL / PCL6 Enhanced – 後発の、バイト指向でスタックベースのオブジェクト風フォーマットで、圧縮とより構造化されたページ記述を可能にします。スループットとデバイス制御の改善を目的として設計され、目的は似ていても同一ではないものの、PostScriptと比較されることがあります。
  • Jet Ready(ホストベース) – 低コストのホスト・ラスタライズ型の変種で、JFIFのような単純な画像ストリームを受け取り、ラスター化をホスト側に任せます。これにより、より簡素なプリンター機構と小さなメモリ容量で運用できます(ホストベース印刷)。

互換性と後方サポート

機器が特定の機能を省いていない限り、後続のPCL実装は一般に以前のレベルとの後方互換性を保ちます。PCL6をサポートするプリンターは、通常PCL5やPCL3のコマンドストリームも受け付けます。この広い互換性のため、多くのメーカーやドライバースタックでは、オフィス機器や企業向け機器の標準オプションとしてPCLサポートが組み込まれています。

PCLの利用分野

PCLは、オフィスプリンター、複合機、プリントサーバー、組み込みプリンター用ファームウェアで一般的です。オペレーティングシステムは通常PCLドライバーを提供するため、アプリケーションは利用者が意識しないままPCL出力を生成することがあります。PCLの設計は、テキスト、表形式の出力、線画に対して高速でコンパクトな記述を重視しているため、大量の定型印刷作業に適しています。

技術面と実務上の考慮点

  • PCLは通常、速度とコンパクトさを優先します。これに対して、PostScriptのようなデバイス非依存言語や、PDFのような文書形式は、機器間での一貫した描画や、より豊かな画像モデルを重視します。
  • プリンター内蔵フォントとスケーラブルフォント: PCLの一部のモードは、装置内に格納されたビットマップフォントに依存しますが、ほかのモードでは、ホストまたはプリンターが提供するスケーラブルなアウトラインフォントをサポートします。
  • PCL XL/PCL6は、圧縮とオブジェクト指向のページ記述スタイルをサポートしてスループットを改善します。これは、拡張版のPCLページ記述言語と呼ばれることもあります(オブジェクト指向の注記)。
  • Jet Readyのようなホストベース方式は、ラスタライズをコンピューター側へ移し、複雑なRIPや大容量プリンター メモリの必要性を減らします(ホスト対RIP)。

相互運用性とベンダー情報

多くのプリンターベンダーは、PCLまたはPCL互換のサブセットを実装しています。これは、形式の普及度が高いためです。デバイスのマニュアルや技術資料には、コマンドセットの詳細や機器固有の拡張が記載されています。一般的な参照としては、ヒューレット・パッカードの資料のようなメーカー文書を参照できます。フォントやビットマップ資源に関する議論では、ビットマップフォントやスケーラブルフォント資源といった用語が使われることがあり、技術的な注記ではラスターデータやビットマップの扱い方が説明されます(ビットマップ処理)。

PCLを選ぶ場面

高速で信頼性の高いテキスト印刷や線画印刷を重視し、カラー要件が控えめで、機器固有のドライバーを受け入れられるワークフローではPCLが適しています。複雑なページ構成、高度な色管理、機器に依存しないアーカイブ出力が必要な場合は、PDFやPostScriptなどのほかの形式が選ばれることが多くなります。実装の詳細については、ベンダーのコマンドマニュアルや上記の技術ノートを参照してください。

さらに詳しく知るには、機器固有のコマンド説明を含むベンダー資料や技術参考資料を参照してください。ヒューレット・パッカードの資料、PostScriptとの言語比較ノート、ラスター フォントに関する技術解説、ビットマップとスケーラブルフォントに関する文書、ビットマップ処理のガイド、オブジェクト風PCLの分析、そしてホスト対RIP方式の説明などが挙げられます。