我对 ESC/POS 完全陌生,我环顾四周,但找不到解决问题的方法。我正在尝试使用通用 USB POS-58 热敏打印机打印条码,但打印机上显示的只是条码数据,而不是条码本身。我正在使用的代码如下:
$barcode = "12345678901";
$handle = fopen('/dev/usb/lp0', 'w');
if (!$handle) {
echo 'Cannot open printer';
exit(0);
}
fwrite($handle, chr(hexdec('1D')).'f'.chr(0));
fwrite($handle, chr(hexdec('1D')).'H'.chr(2));
fwrite($handle, chr(hexdec('1D')).'h'.chr(60));
fwrite($handle, chr(hexdec('1D')).'w'.chr(2));
fwrite($handle, chr(hexdec('1D')).'k'.chr(1));
fwrite($handle, $barcode.chr(0));
fwrite($handle, chr(hexdec('0A')));
fclose($handle);
请注意,我使用的是 PHP,但我从命令行(或 C)使用 printf 得到了相同的结果。我在打印机上得到的是
12345678901
根本没有条形码。打印机可能不支持条码打印吗?“手册”不是很有帮助,它只是说明打印机与 ESC/POS 命令集兼容。我错过了什么吗?