用來設定格式的 Epson ESC/POS
了解如何使用 ESC/POS 命令語言為服務點印表機設定文字格式,例如粗體和雙倍大小字元。
重要 API
ESC/POS 使用率
Windows 服務點支援多種印表機,包括多種 Epson TM 系列印表機(有關支援印表機的完整清單,請參閱 PointofService 印表機頁面)。 Windows 支援透過 ESC/POS 印表機控制語言進行列印,該語言提供了與印表機通訊的高效且實用的命令。
ESC/POS 是 Epson 建立的命令系統,廣泛用於 POS 印表機系統,旨在透過提供通用適用性來避免命令集不相容。 大部分的新式印表機都支援 ESC/POS。
所有指令均以 ESC 字元 (ASCII 27、HEX 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 印表機。