CUPS有3个字段用于问题报告,
-
printer-state(枚举):空闲,处理或停止 .
-
printer-state-message:纯文本人类可读解释 .
-
printer-state-reasons:列出了打印机状态的描述,如RFC8011第152页所述,这是真正的问题报告发生的地方 . 它有一个逗号分隔的关键字列表,用于描述打印机的状态,例如 . 'media-needed'或'toner-low'
当使用Zebra EPL2标签打印机驱动程序在Ubuntu 16.04上测试Zebra LP 2844(以及mac,但现在让我们保持这个简单)时,我得到以下结果 .
----Printer out of paper----
Status Enum: processing
Status Message: printer-state-message: 1 textWithoutLanguage {Waiting for
printer to become available.}
Status Reason: printer-state-reasons: 1 keyword {none}
----Printer rejecting jobs----
Status Enum: idle
Status Message: printer-state-message: 1 textWithoutLanguage {Rejecting Jobs}
Status Reason: printer-state-reasons: 1 keyword {none}
正如您所看到的,“打印机缺纸”问题以及阻止打印机打印的大多数问题都解决为“处理”问题,并且从未向我提供更多信息 . 你可以弄清楚打印机已经“处理”了多长时间并推断出是否存在问题,但除了那些笨拙之外,问题的原因仍然未知 .
同时,'打印机拒绝作业'状态绝对没有告诉我(记住,状态消息只是人类可读的纯文本,并且由于没有关于放在那里的指南而无法解析) . 除了雇用某人阅读状态信息之外,我的程序无法知道存在问题 .
所有打印机都不是这种情况,例如,这是Brother HL-L2380DW的输出
----Printer out of paper----
Status Enum: processing
Status Message: printer-state-message: 1 textWithoutLanguage {Waiting for job to complete.}
Status Reason: printer-state-reasons: 2 keyword {cups-waiting-for-job-completed, media-needed-error}
到目前为止测试的3台打印机(HP,Brother和Zebra)中,Brother HL-L2380DW是唯一能够正确通信问题的打印机 . 如果你想自己测试一下,你可以运行这个粗糙的CUPS工具我在java中共同扔了https://github.com/Vzor-/cupstool更多数据有帮助!
我不知道问题出在杯子还是制造商身上 . 无论哪种方式,我都需要前进的方式,无论是作为修复还是我可以帮助修复的组 .
Edit: It seems Zebra does not make or maintain its own Linux drivers.
1 回答
来自Michael Sweet,
因此,这似乎只是一些标签打印机的问题 .