以编程方式获取(最后一个)CUPS 打印机错误

以编程方式获取(最后一个)CUPS 打印机错误

我正在设置无人值守的自动打印设置。有时打印机可能会缺纸、缺墨或出现其他错误。我有一台佳能 iP4500,在 macOS 上它会将这些错误反馈给用户界面。在 Ubuntu/Lubuntu 上我还没有见过这样的界面。

有没有什么办法可以通过编程获取(最后的) CUPS 错误?
我试过了

  • lpstat -p
    (当没有纸张时会显示类似“正在打印第 1 页,36%”的内容)
  • lpc status
  • lpq
    (其中显示“iP4500 系列已准备就绪并正在打印”)
  • 并挖掘了http://localhost:631/printers/Canon-iP4500-series即 CUPS 网页界面

我真的不在乎“编程”是如何实现的,即 Python、Bash、解析 CUPS Web 界面——实际上任何东西都可以。它只需要自动化。

答案1

对于 Python,有皮卡普斯lib。我需要安装 libcups2-dev(在 Debian 9 上)才能成功安装和编译它。PyPi 页面示例(https://pypi.org/project/pycups/)非常简单:

import cups
conn = cups.Connection ()
printers = conn.getPrinters ()
for printer in printers:
    print printer, printers[printer]["device-uri"]

对于您所需要的,我相信相关信息是:

打印机信息:打印机名称

打印机状态:状态的数字表示。

打印机状态消息:一个字符串,告知状态。

打印机状态原因:字符串列表。

相关内容