4

我需要在打印收据上打印非英文字符,使用热敏 POS 收据打印机。Xprinter XP-58III 热敏 POS 收据打印机支持通用 ESC/POS 命令。据我所知,这应该通过设置字符代码表来完成。在我的例子中,目标代码页是 21。用于设置代码页的 ESC/POS 命令是'ESC t n'(ASCII)或 '1B 74 n'(十六进制),其中“n”是字符代码表的第 n 页。

我使用十六进制形式的命令:我将“21”转换为十六进制值,或者我应该使用这个数字而不进行转换,即'1B 74 21'

另外,在初始化代码之后应该在哪里添加 thnis 命令?

0x1B 0x40 0x1B 0x74 0x21

我使用十六进制编辑器在二进制文件中添加/编辑 ESC/POS 代码。

编辑:我自己解决了这个问题。为了在POS收据打印机上打印任何非英文字符,我们必须满足两个条件:1)设置正确的Code Page,以及2)在收据文件或POS软件中设置相应的编码(与Code Page相同的编码) . 此 POS 打印机型号的正确代码页是 25 [WPC1257]。

4

2 回答 2

3

我自己解决了这个问题:问题出在错误的代码页集中。此 POS 打印机的正确代码页是 25 [WPC1257]。我们还在收据文件中设置了相应的编码(与 Code Page 相同的编码)。

于 2018-09-27T08:45:45.060 回答
2

第 21 页是“Thai Character Code 11”,其中 21 用十进制表示,您需要"0x15"用二进制表示。然后命令将如下所示"0x1B 0x74 0x15"
关于命令位置,ESC/POS 命令在原地执行并影响其后的一般情况。你把它放在初始化命令之后可能没有问题。试试看嘛。

于 2018-09-19T02:16:00.743 回答