я пытаюсь напечатать тайский язык на термопринтере sewoo SLK-T21EB. Я могу напечатать английский язык, и я могу изменить размер шрифта английского языка также с помощью команд esc / pos. Но когда я пытаюсь напечатать тайский язык, он печатает что-то, чего я не могу понять. Я использую язык php для этого. Я должен распечатать квитанции для моего приложения. Если я пытаюсь напечатать тайский язык с другой программой в Windows, я могу напечатать. Я использую 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, возможно, вы могли бы изменить язык, зайдя в настройки принтера? В любом случае, дайте мне знать, если вы решили это.
Других решений пока нет …