Как получить статус принтера?

Можно ли каким-либо образом получить информацию о состоянии принтера, например о замятии бумаги или об отсутствии бумаги, с сетевого принтера?

Я работаю над проектом для печати из торговой точки на сетевом принтере A4, я планирую использовать собственное приложение LPR, но не могу получить замятие бумаги или ошибки из-за этого приложения.

Можно ли получить этот статус с сетевого принтера Lexmark?

Существует ли какая-либо библиотека C / C ++ с открытым исходным кодом, которая позволяет мне получить этот статус?

заранее спасибо

5

Решение

Единственное возможное решение для чего-то подобного — это протокол, который использует принтер, который позволяет вам подключаться к нему и запрашивать данные. Если, например, это принтер с поддержкой IPDS, вам необходимо выяснить, какой порт он использует, и подключиться к нему с помощью сокетов TCP / IP, запросить данные Sense, а затем расшифровать их. Это все, что вы можете сделать.

0

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

Это зависит от принтера. Большинство коробок с поддержкой локальной сети имеют веб-интерфейс, который легко поддается ловле. Я сделал то же самое для некоторых принтеров ricoh, использующих curl для загрузки страниц состояния, и проанализировал их …

Другой возможностью было бы использование ловушек snmp, поскольку принтеры, как правило, имеют события для «застревания бумаги» или «низкого уровня чернил / тонера» …

0

Это можно сделать, если у вас есть принтер, поддерживающий протокол управления устройствами UPnP PrinterBasic и / или PrinterEnhanced. Как правило, DLNA-сертифицированный принтер имеет это.

Вы можете проверить спецификацию здесь:
http://upnp.org/sdcps-and-certification/standards/sdcps/
По сути, интерфейс между вашим устройством и приложением контроллера будет основан на SOAP.

Доступны пакеты UPnP SDK, но вам нужно изучить строгую архитектуру UPnP для ее реализации.
Удачи!

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