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 打印机