PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocFlavor flavor = DocFlavor.BYTE_ARRAY.PNG;
// DocFlavor flavor = DocFlavor.STRING.TEXT_HTML;
//可用的打印机列表(字符串数组)
PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
Map<String, PrintService> printMap = new HashMap<>();
for (int i = 0; i < printService.length; i++) {
String serviceName = printService[i].getName();
printMap.put(serviceName, printService[i]);
System.out.println("serviceName=" + serviceName);
DocFlavor[] docs = printService[i].getSupportedDocFlavors();
if(docs!=null) {
for(DocFlavor doc : docs) {
System.out.println(serviceName+"支持类型:" + doc);
}
}
}
System.out.println("printMap = "+printMap);
//当前默认打印机
PrintService PS = PrintServiceLookup.lookupDefaultPrintService();
String defaaultName = PS.getName();
//默认打印机名称
System.out.println("defaaultName=" + defaaultName);
// PrintService printService1 = printMap.get("58mm Series Printer");
PrintService printService1 = printMap.get("NPIA7349C (HP LaserJet Pro MFP M226dn)");
System.out.println("printService1=" + printService1);
PrinterJob printerJob = PrinterJob.getPrinterJob();
printerJob.setPrintService(printService1);