следующие 4 вопроса не помогло, поэтому это не является дубликатом:Finding, если принтер подключен и готов к печати
мне нужно найти способ узнать, доступен ли принтер для отчетов моей системы для печати или нет.
страница Версия:
В картине, принтер "THERMAL" доступен для печати, но "HPRT PPTII-A (USB)" не доступен для печати. Система показывает мне, что, делая не доступный принтер затененных
Используя следующий код, я могу найти все принтеры в системе
public static List<String> getAvailablePrinters() {
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
PrintService[] services = PrintServiceLookup.lookupPrintServices(flavor, aset);
ArrayList<String> names = new ArrayList<String>();
for (PrintService p : services) {
Attribute at = p.getAttribute(PrinterIsAcceptingJobs.class);
if (at == PrinterIsAcceptingJobs.ACCEPTING_JOBS) {
names.add(p.getName());
}
}
return names;
}
выход:
[HPRT PPTII-A(USB), THERMAL]
Проблема: этот код показывает все принтеры, которые система когда-либо устанавливала.
Что мне нужно: этот список должен содержать только действительно доступные принтеры для печати. В этом примере он должен показывать только «THERMAL», а не показывать «HPRT PPTII-A (USB)»
Как это можно достичь?
как насчет [этого] (http://stackoverflow.com/questions/1387938/how-to-check-printer-is-connected-or-not-to-your-pc-by-java)? – MaxG
Это не совсем помогает, просто отправьте меня на страницу документов, в которой я не знаю, что делать ... Добавление как проверенный вопрос – MoisesCol