печать — Escpos-php с серийным принтером

Я пытаюсь распечатать QR-код на моем серийном принтере Epson TM-T88IV, используя php. Тем не менее, мой 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);

Что должно быть в случае с последовательным принтером (я не уверен, что я должен поставить вместо «/ dev / ttsyS0»). Может быть, я не должен пытаться запустить его через сервер? Я делаю это потому, что не могу изменить его систему POS (Maitre D), и мне нужен простой способ напечатать QR-код на счетах. Если вы знаете какую-либо работу, любой совет будет оценен! Спасибо

0

Решение

Автор 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. Этот пример имеет несколько полезных команд, чтобы убедиться, что вы можете печатать, прежде чем открывать 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");

В любом случае две ошибки:

  • Используйте это только с Общий / Только текст Водитель. escpos-php выведет raw ESC / POS, что запутает любой драйвер, ожидающий документ.
  • Это на стороне сервера. Убедитесь, что PHP работает на компьютере, который будет выполнять печать, или что вы находитесь по крайней мере во внутренней сети, если используете сетевую печать.
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]