java-获取打印机的活动状态

java-获取打印机的活动状态,java,printing,java-print,Java,Printing,Java Print,我用java实现了一个打印系统。我需要获取打印机状态,因此我使用了AttributeSet: PrintService service = PrintServiceLookup.lookupDefaultPrintService(); AttributeSet attributeSet = service.getAttributes(); for (Attribute a : attributeSet.toArray()) { System.out.println(a.getName(

我用java实现了一个打印系统。我需要获取打印机状态,因此我使用了
AttributeSet

PrintService service = PrintServiceLookup.lookupDefaultPrintService();
AttributeSet attributeSet = service.getAttributes();
for (Attribute a : attributeSet.toArray()) {
     System.out.println(a.getName() + ": " + attributeSet.get(a.getClass()).toString());
}
这会在输出以下返回我(即使打印机关闭或暂停):


但是,我需要更具体地了解打印机状态,例如,我需要知道打印机是关闭还是暂停,或者纸张是否正常。如何获得确切的打印机状态?

PrintService实现是否基于CUPS ref:?请记住,这是打印服务的接口,而不是物理打印机。可用的属性将完全取决于操作系统和驱动程序实现。打印机特定的硬件状态信息由特定的驱动程序决定。@JimGarrison您能进一步解释一下吗?@hamed他的意思是,根据操作系统和打印机提供的驱动程序,您的选项有限。如果打印机支持传送此状态信息,则您可以实现此目的。但如果没有,那么你就不是。基本上,您的问题的答案是,根据打印机驱动程序和操作系统,这是不可能的。
printer-name: EPSON LQ-350 ESC/P2
color-supported: not-supported
printer-is-accepting-jobs: accepting-jobs
queued-job-count: 0