我正在尝试在热敏打印机sewoo SLK-T21EB上打印泰语。我可以打印英语,也可以使用 esc/pos 命令更改英语的字体大小。但是当我尝试打印泰语时,它会打印一些我无法理解的东西。我正在使用php语言来做到这一点。我必须为我的应用程序打印收据。如果我尝试在窗口中使用其他程序打印泰语,我可以打印。我正在使用 wamp 服务器。我的代码是
<?php
$ph = printer_open("THERMAL Receipt Printer");
echo "$ph";
printer_set_option($ph, PRINTER_MODE, "RAW");
printer_set_option($ph, PRINTER_PAPER_FORMAT, PRINTER_FORMAT_CUSTOM);
printer_set_option($ph, PRINTER_PAPER_LENGTH, 50);
printer_set_option($ph, PRINTER_COPIES, 1);
printer_start_doc($ph, "PHP Document");
printer_start_page($ph);
const ESC = "x1b";
const FS = "x1c";
const GS="x1d";
const NUL="x00";
$InitializePrinter= ESC."@";
$bigchar=ESC."E".chr(1);
$bigsize=GS."!".chr(1111);
printer_write($ph, $InitializePrinter);
printer_write($ph, $bigchar); //bold
printer_write($ph, $bigsize); //size
printer_write($ph, "data string to print");
printer_write($ph, "ฟกดเพำ");
printer_end_page($ph);
printer_end_doc($ph);
printer_close($ph);
?>
请帮忙...
问题似乎是您没有告诉打印机应该打印哪种语言,或者您没有正确编码泰语字符串。
你可以试试
printer_write($ph, utf8_encode("ฟกดเพำ"));
或者,您可以尝试将打印机的语言格式设置为泰语的命令。因为我在你的帖子中没有看到这样的命令。尝试在 Java 中打印瑞典字符时,我遇到了类似的问题。但我使用字节而不是字符串:)
根据这里给出的答案,我可以用另一种语言更改printer_write吗? 您无法从PHP更改打印机的语言,也许您可以通过转到打印机的设置来更改语言?无论如何,如果您解决了这个问题,请告诉我。