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