#php #windows #linux #thermal-printer
#php #Windows #linux #термопринтер
Вопрос:
У меня есть термопринтер Epson, модель TM-T20, который я настраиваю для клиентов.
Наш веб-сервер — это сервер Linux, а клиентские компьютеры будут машинами Windows.
Возможно ли с помощью php напрямую управлять термопринтером, подключенным к компьютеру клиента?
Я просмотрел javascripts window.print (), но это не то, что я хочу, если возможно, я хочу обойти диалоговое окно печати.
Спасибо, Тони
Ответ №1:
Нет. PHP не имеет абсолютно никакого отношения к принтеру клиента. Если принтер был подключен к устройству, на котором запущен PHP-скрипт (т. Е. к серверу), возможно, вы могли бы что-то сделать. Как бы то ни было, PHP отправляет клиенту только текст. С этого момента браузер клиента и программное обеспечение принтера должны обрабатывать это.
В качестве альтернативы, если в окне Windows запущен сервер печати, предоставляющий доступ к принтеру, с которым PHP может взаимодействовать по сети, вы могли бы связаться с принтером напрямую. Но это больше не было бы нормальными отношениями PHP server / client.
Ответ №2:
печать с php не так проста, большинство веб-приложений, которые я видел, генерируют PDF, и клиенты распечатывают его.
взгляните на http://www.vendhq.com / они создают приложение для торговых точек для магазинов, и у них есть кое-что, что вам нужно загрузить и установить, чтобы печатать кассовые чеки с помощью принтера чеков. это может дать вам некоторое вдохновение
Ответ №3:
Я делал именно это раньше. Это было довольно сложно, используя сервер Ubuntu в локальной сети рабочего места и термопринтер на другом компьютере Ubuntu в зоне доставки. На этом компьютере была запущена служба php, прослушивающая порт, и он был безголовым, прячась внутри шкафа.
Внутреннее веб-php-«приложение» компании на сервере локальной сети координировалось бы с их электронной коммерцией и UPS.com для печати этикетки для доставки. Я забыл, как UPS отправила это, но мы использовали imagemagik, чтобы настроить конечное изображение до идеальной ширины в пикселях. Затем сервер локальной сети подключился бы к целевому серверу php socket server и отправил бы соответствующие команды на последовательный порт, к которому был подключен принтер, вместе с данными изображения.
Назвать это решение madhatterey — это еще мягко сказано… но было довольно удивительно, что этикетки волшебным образом появлялись при «отправке» заказа. Нет диалогового окна печати или чего-либо еще. Самое дешевое решение — получить Atom box, который может запускать Ubuntu, и получить принтер с файлом ppd, который работает. Затем просто поставьте это в очередь должным образом. Та же концепция, что и удаленная печать в Linux.
Возможно, вы могли бы выполнить запрос на печать из AJAX-запроса веб-страницы и не нуждаться в дополнительной инфраструктуре (или сервере php-сокетов целевого компьютера).