0

我正在尝试在热敏打印机 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);
?>

请帮忙...

4

1 回答 1

0

问题似乎是您没有告诉打印机它应该打印哪种语言,或者您没有正确编码泰语字符串。

你可以试试

printer_write($ph, utf8_encode("ฟกดเพำ"));

或者您可以尝试将打印机的语言格式设置为泰语的命令。由于我在您的帖子中没有看到这样的命令。尝试在 Java 中打印瑞典语字符时,我遇到了类似的问题。但我使用字节而不是字符串:)

根据here给出的答案,我可以用另一种语言更改printer_write吗?您不能从 php 更改打印机的语言,也许您可​​以通过转到打印机的设置来更改语言?无论如何,如果你解决了这个问题,请告诉我。

于 2016-02-24T21:44:06.950 回答