Java 为什么PrinterState总是返回null?

Java 为什么PrinterState总是返回null?,java,printing,null,Java,Printing,Null,我无法获取打印机的打印机状态。我已经用不同的打印机在Linux和Windows7上测试了以下代码,三星、Brother仅在Linux、Zebra等上测试。。。。但在任何情况下,PrinterState和PrinterStateReasions对象都为null private void dumpPrinterState() { PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null); //g

我无法获取打印机的打印机状态。我已经用不同的打印机在Linux和Windows7上测试了以下代码,三星、Brother仅在Linux、Zebra等上测试。。。。但在任何情况下,PrinterState和PrinterStateReasions对象都为null

private void dumpPrinterState() {
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null); //get printers

for (PrintService printService : printServices) {
  log.info("---- printer: " + printService);
  log.info("---- state: " + printService.getAttribute(PrinterState.class));
  log.info("---- reason: " + printService.getAttribute(PrinterStateReasons.class));
  }
}
以下是“我的Windows试用版”的输出:

---- printer: Win32 Printer : ZDesigner KR403
---- state: null
---- reason: null
---- printer: Win32 Printer : Samsung CLP-300 Series
---- state: null
---- reason: null
---- printer: Win32 Printer : Microsoft XPS Document Writer
---- state: null
---- reason: null
---- printer: Win32 Printer : Fax
---- state: null
---- reason: null

有人知道出了什么问题吗?

您可能需要使用toArray功能。有关如何使用此功能的示例,请参见以下内容:


如果这对您有帮助,请告诉我。

出于某些原因,PrinterState&PrinterStateReasions不支持,printService.GetSupportedAttribute类别没有返回它们