打印泰语

Print Thai language

我有一个使用 ESC/POS 将收据打印到收据打印机的应用程序。它需要支持泰语。

当我尝试打印泰语时,一些字符被分开,就像这张照片:

这是我的代码:

printMSG = Command.ESC + "t" + Command.DecimalToCharString(27);
port.Write(printMSG);
var enc = Encoding.GetEncoding("windows-874");
string content = "ข้าวผัดอินโดนีเซียกับเครื่องเทศแบบดั้ง";
byte[] bytes = enc.GetBytes(content);
port.Write(bytes, 0, bytes.Length); 

我不知道。请帮我。会是一个生命的救星。

泰语被称为三通语言。 即分别打印顶线、中线和底线。

例如รื่有顶部和中间字符,你必须在每一行打印它们,从你的图片来看,这些字符打印在底部,因此作为顶部行。

再比如ดั้,有双顶字符,需要在代码页中查找字符。

还有其他底部字符,这些字符将打印在顶部,因此作为底部行。

做一些测试,你会得到它。

使用命令模式打印需要硬件的支持(在我的例子中是 Star Micronics)。我 运行 遇到了同样的问题,只能通过将整个内容光栅化为位图然后打印整个位图来解决它。

这是我在上面的评论中描述的图片。 我写了一个简单的 For..Next 循环来打印泰语代码页中的字符。 从我的图片中,我突出显示了代码页中的双字符和泰文字符的字符号。

此外,第三个打印输出显示我的代码打印出泰语句子,每个泰语句子三行。第一句和第三句共三行。