書式設定における Epson ESC/POS

ESC/POS コマンド言語を使用して、Point of Service プリンターの太字や二重サイズの文字などのテキストを書式設定する方法について説明します。

重要な API

ESC/POS の使用方法

Windows Point of Service では、複数の Epson TM シリーズ プリンターなど、さまざまなプリンターがサポートされています (サポートされているプリンターの完全な一覧については、 PointofService プリンター ページを参照してください)。 Windows では、ESC/POS プリンター制御言語を使用した印刷がサポートされています。これにより、プリンターと通信するための効率的で機能的なコマンドが提供されます。

ESC/POSは、ユニバーサルな適用性を提供することで互換性のないコマンドセットを回避することを目的として、幅広いPOSプリンタシステムで使用されるエプソンによって作成されたコマンドシステムです。 最新のプリンターのほとんどは、ESC/POS をサポートしています。

すべてのコマンドは、ESC 文字 (ASCII 27、16 進 1B) または GS (ASCII 29、HEX 1D) で始まり、その後にコマンドを指定する別の文字が続きます。 通常のテキストは、改行で区切ってプリンターに送信されます。

Windows PointOfService API は、Print()メソッドまたは PrintLine() メソッドを使用してその機能の多くを提供します。 ただし、特定の書式を取得したり、特定のコマンドを送信したりするには、文字列としてビルドされ、プリンターに送信される ESC/POS コマンドを使用する必要があります。

太字と二重サイズの文字を使用する例

次の例は、ESC/POS コマンドを使用して太字および二重サイズの文字で印刷する方法を示しています。 各コマンドは文字列としてビルドされ、printJob 呼び出しに挿入されることに注意してください。

// … prior plumbing code removed for brevity
// this code assumed you've already created a receipt print job (printJob)
// and also that you've already checked the PosPrinter Capabilities to
// verify that the printer supports Bold and DoubleHighDoubleWide print modes

const string ESC = "\u001B";
const string GS = "\u001D";
const string InitializePrinter = ESC + "@";
const string BoldOn = ESC + "E" + "\u0001";
const string BoldOff = ESC + "E" + "\0";
const string DoubleOn = GS + "!" + "\u0011";  // 2x sized text (double-high + double-wide)
const string DoubleOff = GS + "!" + "\0";

printJob.Print(InitializePrinter);
printJob.PrintLine("Here is some normal text.");
printJob.PrintLine(BoldOn + "Here is some bold text." + BoldOff);
printJob.PrintLine(DoubleOn + "Here is some large text." + DoubleOff);

printJob.ExecuteAsync();

使用可能なコマンドを含む ESC/POS の詳細については、 ESC/POS コマンド リファレンス リビジョン 2.60 を参照してください。 Windows.Devices.PointOfService および使用可能なすべての機能の詳細については、MSDN の「PointofService Printer」を参照してください。