我有一个使用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);
我不知道。请帮我。会成为救生员。
答案 0 :(得分:4)
泰语称为三关语言。 这意味着分别打印顶行,中间行和底行。
例如รื่具有顶部和中间字符,您必须在每行上打印它们,而在图片中这些字符是在底部打印,因此在顶部显示。
对于另一个示例ดั้,它具有双顶字符,则需要在代码页中查找该字符。
还有其他底部字符,这些字符将打印在顶部,因此是底行。
进行一些测试,您会得到它。
答案 1 :(得分:3)
使用命令模式打印需要硬件(在我的情况下是Star Micronics)的支持。我遇到了同样的问题,只能通过将整个内容光栅化为位图,然后打印整个位图来解决。
答案 2 :(得分:1)