首页 文章

打印机无法向CUPS报告问题

提问于
浏览
5

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 回答

  • 1

    来自Michael Sweet,

    Kyle,状态报告很复杂,但一般来说,基于驱动程序的队列的问题可能来自驱动程序没有实现STATE:消息支持(通常是因为打印机的通信通道不提供支持)或来自打印机本身不支持任何类型状态报告 . 对于Zebra打印机,它不支持带内状态报告,因此CUPS捆绑的驱动程序无法通过该方式从打印机获取状态 . 它也不支持SNMP打印机MIB的状态,因此我们甚至没有获得带外状态...:/可悲的是,这类打印机通常不支持状态报告,这很有趣,因为许多是部署在远程监控很常见的工业环境中......除了其他IPP属性之外,实现IPP的打印机(目前除了标签打印机以外通常是所有打印机 - 因此98%的打印机)都支持IPP打印机状态原因关键字状态和(在许多情况下)SNMP Printer MIB属性 .

    因此,这似乎只是一些标签打印机的问题 .

相关问题