我在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());
}
这会在输出下方返回我(即使打印机关闭或暂停):
printer-name: EPSON LQ-350 ESC/P2
color-supported: not-supported
printer-is-accepting-jobs: accepting-jobs
queued-job-count: 0
但是,我需要更具体的打印机状态,例如我需要知道打印机是关闭还是暂停,或者纸张是否正常。如何获得准确的打印机状态?