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