0

サーマルプリンターsewoo SLK-T21EBでタイ語を印刷しようとしています。英語を印刷でき、esc/pos コマンドでも英語のフォント サイズを変更できます。しかし、タイ語を印刷しようとすると、理解できないものが印刷されます。これを行うためにphp言語を使用しています。アプリの領収書を印刷する必要があります。Windows の他のプログラムでタイ語を印刷しようとすると、印刷できます。私はワンプサーバーを使用しています。私のコードは

<?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 でスウェーデン語の文字を印刷しようとすると、同様の問題が発生しました。しかし、文字列の代わりにバイトを使用しました:)

ここでの回答によると、printer_write を別の言語に変更できますか? php からプリンターの言語を変更することはできません。おそらく、プリンターの設定に移動して言語を変更できますか? とにかく、これが解決したかどうか教えてください。

于 2016-02-24T21:44:06.950 に答える