Java FAQ

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());
    }
}
FAQ

2 komentarzy

A dlaczego ma nie działać?

wszystko ladnie dziala