通过ESC/POS设置热敏打印机字符集

问题描述 投票:0回答:1

我有一台热敏打印机“MPT-II”,来自一个不知名的中国品牌,有USB和蓝牙功能。我可以使用以下方法成功打印文本:

  1. Android 上的 Loyverse 应用程序
  2. JavaScript
  3. 原始十六进制或十进制

但是,只有使用 Loyverse 应用程序才能输入特殊字符,我所说的特殊字符是指丹麦语字符 æøå/ÆØÅ。

如果我在 Windows 上打开任何 BLE 工具(例如蓝牙 LE Lab),我可以选择正确的特征并发送类似

104 101 108 108 111 13 10
的内容,这将在打印机上打印“hello”。我已经阅读了一些有关
ESC R
ESC t
命令的内容,但是我到底如何设置这些模式呢?我尝试将其添加到每个命令的前面,例如
27 82 1 104 101 108 108 111 13 10
,其中
27 82 1
对应于
ESC R 4
,而
4
对应于
Denmark I

根据打印机的手册,其说明如下:

GB18030字符集、ASCII字符、用户定义字符、条形码CODE39、EAN13、EAN8、CODABAR、CODE93、ITF、位图。

根据该列表,不支持丹麦语字符集。我不确定 Loyverse 应用程序如何正确执行此操作,但使用原始命令和 Loyverse 的文本是相同的,因此我不认为 Loyverse 会转换为位图并发送该数据。

所以我真正的问题是:如何为我的打印机发送正确的字符集?也许字符集已经正确,但是 æøå/ÆØÅ 的 ASCII 字符是错误的?

编辑:我已经确认某些功能可以与

ESC XXXX
命令一起使用。如果我执行
27 97 2
后跟“hello”序列,则文本将打印到右侧(右对齐)。所以这绝对有效..到目前为止,我已经使用
ESC R
ESC t
尝试过可能所有字符集,但它们都不起作用:(

编辑2:我现在已经测试了

ESC R
ESC t
的每一个组合。我遍历了整个列表,打印了一些汉字,我尝试的 150 多个行中的每一行都返回了相同的汉字。所以
ESC R
ESC t
绝对不是我应该用来更改字符集的命令。

printing character-encoding bluetooth-lowenergy thermal-printer
1个回答
0
投票

您可以尝试取消中文模式0x1C + 0x2E 一些便宜的速卖通BT打印机默认为中文模式,字符> 127

© www.soinside.com 2019 - 2024. All rights reserved.