このエントリーをはてなブックマークに追加
スポンサーリンク

ESC/Page制御コード

ESC/Pageとは

EPSON社の提唱するページ記述言語です。ページプリンター専用であるため、矩形、円の描画や塗りつぶしなど、ページプリンターに特化したコマンドが多数搭載されています。

ドットプリンターおよび熱転写プリンター全盛期の時代では、最初各社でバラバラだった制御コードも、IBM PC/AT互換機搭載のOS(DOS/V)がESC/Pのみの対応となったため、エプソン社のESC/Pがほぼ標準となりました。

しかしながら、ページプリンターでは、他のページ記述言語(LIPS3、LaTex、Ghostscript)と比べてさほど普及しなかったようで、現在(2019年現在)ではエプソン社のプリンターの中でも、特に過去の資産を継続して利用するために一部機種のみの対応となっています。

ESC/Page制御コードのフォーマット

ESC/Pageのプリンターでも、他のプリンターと同じように1バイトで完結するもの(00H〜1FH)はそのまま使う事ができます。

しかし、ESC(1BH)やCEX(1CH)で始まるコマンドはESC/Pモードに切り替えない限り使う事ができず、かわりにGS(1DH)から始まるページ記述言語を使うようになっています。

GS パラメーター 中間キャラクター 終端キャラクター データー・・・

・GS
16進数でいうところの1DHです。

・パラメーター
パラメーターは、ESC/Pのようなバイナリではなく、NEC PR-201と同じようにテキストで表します。たとえば、パラメーターで100と指定する場合は、16進数で 31 30 30 となります。

・中間キャラクター
テキストで小文字です。終端キャラクターの後にデーターが必要な場合は、中間キャラクターの後に{がつきます。

・終端キャラクター
テキストで大文字です。

・データー
イメージ印刷のようにバイナリデーターが必要な場合は、ここにバイナリデーターがきます。

当サイト掲載の、ESC/Pageプリンタードライバーでは、無数にあるGSコマンド全てに対応するわけにもいかないため(注1)、バイナリデーターを必要とするパラメーターに対して透過処理を行っておりません。そのかわり、東芝J-3100シリーズに搭載されたプリンタードライバーに内包された、AH=85Hの漢字変換指定を使用する事ができるため、バイナリデーターが必要な時は、まずはプリンタードライバー内のAH=85Hのファンクションを使って漢字変換を無効にしてください。

注1:
まあ、今にして思えばバイナリデーターを扱うコマンドには全て{がつくのと、GSの後に必要なバイト数を送信する事になっているので、やってやれない事もなかったんでしょうけど、なにしろそこまでしてまで私の作ったドライバーを使ってESC/Pageプリンターに印刷したいという人もいませんでしたので。


参考文献
ESC/Pageリファレンスマニュアル第3版 EPSON
スポンサーリンク