我正在尝试使用php使用我的Epson TM-T88IV串行打印机打印QR码。但是,我的php文件安装在服务器上,并且我能够从html文件中成功调用它。我正在使用名为ESCPOS-PHP(https://github.com/mike42/escpos-php)的库,并且计算机正在运行Windows XP Professional。这是我的php片段(中间有更多,但打印操作不需要):
<?php
require __DIR__. '/escpos-php-master/Escpos.php';
use Mike42\Escpos\Printer;
use Mike42\Escpos\PrintConnectors\FilePrintConnector;
[...]
try {
$connector = new WindowsPrintConnector("EPSON TM-T88IV Receipt");
$printer = new Escpos($connector);
$printer -> text("Hello World!\n");
$printer -> cut();
// Close printer
$printer -> close();
} catch(Exception $e) {
echo "Couldn't print to this printer: " . $e -> getMessage() . "\n";
}
?>
似乎我无法连接到打印机。我也试过
$connector = new FilePrintConnector("/dev/ttyS0");
$printer = new Printer($connector);
这应该是串行打印机的方式(我不知道应该放什么而不是&#34; / dev / ttsyS0&#34;)。也许我不应该尝试通过服务器触发它?我之所以这样做是因为我无法修改他的POS系统(Maitre D),我需要一种简单的方法来在账单上打印QR码。如果您知道任何workaroung,任何建议将不胜感激!感谢
答案 0 :(得分:2)
escpos-php的作者在这里。
escpos-php README建议您首先尝试在命令行上将数据发送到打印机,因为它可以让您在尝试使用驱动程序之前确定打印方式。
例如,如果您打算在COM1上设置打印机,可以尝试键入:
echo "Hello world" > COM1
对应于:
<?php
$connector = new FilePrintConnector("COM1");
$printer = new Escpos($connector);
$printer -> text("Hello World\n");
WindowsPrintConnector用于连接Windows共享打印机。 This example有一些有用的命令,以确保在打开PHP之前可以打印。例如,
echo "Hello world" > foo.txt
net use "\\computername\Receipt Printer" /user:Bob secret
copy testfile "\\computername\Receipt Printer"
del testfile
这对应于:
<?php
$connector = new WindowsPrintConnector("smb://bob:secret@computername/Receipt Printer");
$printer = new Escpos($connector);
$printer -> text("Hello World\n");
无论如何,有两个陷阱: