首页 > 解决方案 > PHP:在printer_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 我也尝试了另一台,但我收到了同样的问题

标签: phpprintingarabic

解决方案


尝试这个:

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

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

printer_write($handle, $EncodedArabicData);

推荐阅读