我如何获得打印机状态?

时间:2014-04-05 04:32:01

标签: c++ c linux point-of-sale network-printers

我是否有办法从网络打印机获取打印机状态,如卡纸或缺纸?

我正在开发一个项目,从销售点打印到A4网络打印机,我计划使用LPR本机应用程序,但我不能得到卡纸或出纸使用该应用程序的纸质错误。

是否可以从Lexmark网络打印机获取这些状态?

是否存在允许我获得这些状态的任何C / C ++开源库?

提前谢谢

3 个答案:

答案 0 :(得分:1)

这取决于打印机。大多数支持LAN的盒子都有一个易于捕获的Web界面。我使用curl下载状态页并解析了那些......的一些ricoh打印机也做了同样的事情......

另一种可能性是使用snmp陷阱,因为打印机往往会出现“卡纸”或“油墨/墨粉不足”的事件......

答案 1 :(得分:0)

这种类似的唯一解决方案是打印机使用的协议,允许您连接到它并请求数据。例如,如果它是支持IPDS的打印机,则必须找出它使用的端口并使用TCP / IP套接字连接到它,请求Sense Data,然后对其进行解密。这就是你所能做的一切。

答案 2 :(得分:0)

如果您使用的打印机支持UPnP设备控制协议PrinterBasic和/或PrinterEnhanced,则可以执行此操作。通常,DLNA认证的打印机具有此功能。

您可以在此处查看规格表: http://upnp.org/sdcps-and-certification/standards/sdcps/ 基本上,设备和控制器应用程序之间的接口将基于SOAP。

有UPnP SDK可用,但您需要学习严格的UPnP架构来实现它。 祝你好运!