Pobranie listy drukarek
Koziołek
W wielu programach tworzymy jakieś dane, które następnie należałoby wydrukować. Warto w takim przypadku dać użytkownikowi możliwość wyboru drukarki. Poniższa klasa pozwala na wyszukanie odpowiedniej drukarki zainstalowanej w systemie. Zwraca też informacje o wszystkich drukarkach zainstalowanych w systemie.
package pl.koziolekweb.programmers.printers;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
public class PrinterUtils {
private static Map<String, PrintService> printServices;
private PrinterUtils(){}
static {
PrintService[] ps = PrintServiceLookup.lookupPrintServices(null, null);
printServices = new HashMap<String, PrintService>();
for (PrintService printService : ps) {
printServices.put(printService.getName(), printService);
}
}
public static int getNumberOfPrinters() {
return printServices.size();
}
public static Set<String> getPrinters() {
return printServices.keySet();
}
public static PrintService getPrinterByName(String name){
return printServices.get(name);
}
}
Mały test:
package pl.koziolekweb.programmers.printers;
public class Main {
public static void main(String[] args) {
System.out.println("Liczba drukarek: " + PrinterUtils.getNumberOfPrinters());
System.out.println("Drukarki: " + PrinterUtils.getPrinters());
}
}
A dlaczego ma nie działać?
wszystko ladnie dziala