PHP: prininter_write ($handle, $string)中打印阿拉伯字符的问题



我使用php_printer.dll在餐厅的特定厨房自动打印订单。问题是打印的收据中的阿拉伯字符不能以正确的方式显示(例如:سكرباكت),而同一台打印机可以使用windows.print()打印不同的收据而没有任何问题,并正确显示阿拉伯字符。

下面是代码的一部分:

$handle = printer_open("\\192.168.1.105\xp-80");'
printer_set_option($handle, PRINTER_MODE, "RAW");'
printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_RIGHT);'
'printer_start_doc($handle, "My Order");'
'printer_start_page($handle);'
'$rFont=printer_create_font("font-face", 20, 10, PRINTER_FW_MEDIUM, false, false, false, -50);'
'printer_select_font($handle, $rFont);'
'printer_write($handle, "بون تحضير ");'
'printer_write($handle, "n");'
'printer_delete_font($rFont);'
'printer_end_page($handle);'
'printer_end_doc($handle);'
'printer_close($handle);'

注意:打印机是xprinter-80,我也尝试了另一个,但我收到了同样的问题

试试这个:

$arabicData="ون تحضير";
$EncodedArabicData= utf8_encode($arabicData);

并且在写入打印机时使用变量$EncodedArabicData,即:

printer_write($handle, $EncodedArabicData);

最新更新