2016-01-23 3 views
-1

Я реализую функциональность для печати счета-фактуры, потому что у меня есть модуль Escpos, но когда я запускаю его, ответа нет.Распечатайте счет-фактуру с помощью PHP escpos в linux

, если я печатаю имя php_sapi, у меня есть «apache2handler» вместо «cli», у меня есть система linux. Я не знаю, как получить «cli» на моем веб-сервере.

Можете ли вы поделиться идеей, чтобы решить эту проблему

if(php_sapi_name() == 'cli') {// i got apache2handler 
    $connector = new FilePrintConnector("php://stdout"); 
} else { 
throw new InvalidArgumentException("Argument passed to Escpos::__construct() must implement interface PrintConnector, null given."); 
    } 

ответ

0

Поскольку вопрос цитирует отрывок очень знакомый вид кода, я предполагаю, что вы имеете в виду mike42/escpos-php.

Если это так, вам нужно будет выбрать PrintConnector, который будет работать на вашей платформе (Windows, Mac, Linux) и интерфейсе (USB, Serial, Samba share, CUPS). Правильный способ инициализации драйвера будет специфичным для системы.

Таблица поддерживаемых комбинаций со ссылками на примеры фрагментов отображается в файле README.

В качестве примера, если у вас есть USB-принтер в Linux, он может отображаться как /dev/usb/lp0. Если предположить, что ваши права настроены, чтобы позволить пользователю веб-сервер для доступа к этому файлу, то для отправки основной квитанции связана в README под Linux/USB:

<?php 
require __DIR__ . '/vendor/autoload.php'; 
use Mike42\Escpos\PrintConnectors\FilePrintConnector; 
use Mike42\Escpos\Printer; 
$connector = new FilePrintConnector("/dev/usb/lp0"); 
$printer = new Printer($connector); 
$printer -> text("Hello World!\n"); 
$printer -> cut(); 
$printer -> close(); 

Помимо: Сниппет вы цитируемый больше не находится в код, но он был старой функцией, чтобы вернуться на php:///stdout, если вы находитесь в командной строке и не указали коннектор печати.

+0

Что делать, если у меня есть USB-принтер в Windows, что мне нужно передать в FilePrintConnector(). –