2014-11-18 2 views
0

Я не могу получить PrinterState моих принтеров. Я тестировал следующий код в Linux и Windows (7) с разными принтерами (Samsung, Brother (только в Linux), Zebra, ...). Но в каждом случае объекты PrinterState и PrinterStateReasons имеют значение NULL.Почему PrinterState всегда возвращает 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 

Кто-нибудь знает, что случилось?

ответ

0

Возможно, вам понадобится использовать функцию toArray(). Пример использования этого метода можно найти здесь: SO: SO printer info

Пожалуйста, дайте мне знать, если это вам помогло.

+0

По какой-то причине PrinterState & PrinterStateReasons не поддерживает, printService.getSupportedAttributeCategories() не вернул их – whizzzkey

Смежные вопросы