我正在设置无人值守的自动打印设置。有时打印机可能会缺纸、缺墨或出现其他错误。我有一台佳能 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"]
对于您所需要的,我相信相关信息是:
打印机信息:打印机名称
打印机状态:状态的数字表示。
打印机状态消息:一个字符串,告知状态。
打印机状态原因:字符串列表。