Можно ли каким-либо образом получить информацию о состоянии принтера, например о замятии бумаги или об отсутствии бумаги, с сетевого принтера?
Я работаю над проектом для печати из торговой точки на сетевом принтере A4, я планирую использовать собственное приложение LPR, но не могу получить замятие бумаги или ошибки из-за этого приложения.
Можно ли получить этот статус с сетевого принтера Lexmark?
Существует ли какая-либо библиотека C / C ++ с открытым исходным кодом, которая позволяет мне получить этот статус?
заранее спасибо
Единственное возможное решение для чего-то подобного — это протокол, который использует принтер, который позволяет вам подключаться к нему и запрашивать данные. Если, например, это принтер с поддержкой IPDS, вам необходимо выяснить, какой порт он использует, и подключиться к нему с помощью сокетов TCP / IP, запросить данные Sense, а затем расшифровать их. Это все, что вы можете сделать.
Это зависит от принтера. Большинство коробок с поддержкой локальной сети имеют веб-интерфейс, который легко поддается ловле. Я сделал то же самое для некоторых принтеров ricoh, использующих curl для загрузки страниц состояния, и проанализировал их …
Другой возможностью было бы использование ловушек snmp, поскольку принтеры, как правило, имеют события для «застревания бумаги» или «низкого уровня чернил / тонера» …
Это можно сделать, если у вас есть принтер, поддерживающий протокол управления устройствами UPnP PrinterBasic и / или PrinterEnhanced. Как правило, DLNA-сертифицированный принтер имеет это.
Вы можете проверить спецификацию здесь:
http://upnp.org/sdcps-and-certification/standards/sdcps/
По сути, интерфейс между вашим устройством и приложением контроллера будет основан на SOAP.
Доступны пакеты UPnP SDK, но вам нужно изучить строгую архитектуру UPnP для ее реализации.
Удачи!