У меня есть веб-сайт (на удаленном сервере), и пользователь просматривает его на iPhone (Safari).
Я пытаюсь добиться того, чтобы пользователь мог печатать текстовый файл с этогосайт для POS-принтера (термопринтер REGO, RG-MTP58B).Этот принтер не поддерживает AirPrint, но является Wi-Fi-принтером и использует 172.20.10.2:9100
IP и порт.
Насколько я понимаю, я не могу напрямую печатать с сервера, так как принтер не в сети сервера, но в локальной сети.
Я использую этот пакет: https://github.com/mike42/escpos-php, как я вижу, это единственное, что все еще поддерживается.
Я пробовал таким образом:
$connector = new FilePrintConnector("php://stdout");
$printer = new Printer($connector);
$printer->text("Hello World!\n");
$printer->cut();
$printer->close();
Но это просто дает белую страницу, и принтер ничего не получает.
Я пытался сохранить файл на сервере, открыть его в Safari, но Safari не предоставляетвозможность распечатать его (даже в области «Поделиться»).
Итак, я обнаружил, что пакет Author делает это:
$connector = new DummyPrintConnector();
$profile = CapabilityProfile::load("TSP600");
$printer = new Printer($connector);
$printer->text("Hello world!\n");
$printer->cut();
// Get the data out as a string
$data = $connector->getData();
// Return it, check the manual for specifics.
header('Content-type: application/octet-stream');
header('Content-Length: '.strlen($data));
echo $data;
// Close the printer when done.
$printer->close();
(оригинальный код: здесь )
В этом случае он создает файл и показывает его так:
Опять же, он не обеспечиваетвозможность распечатать его (даже в области «Поделиться»).
Содержимое файла является двоичным:
<0x1b>@Hello world!
<0x1d>VA<0x03>
Как отправить эти данныек принтеру?