创建PrintUtility类下面,将其导入并尝试调用PrintUtility.findPrintService("name_of_my_printer");,如果你知道你的打印机名称;如果你不知道什么打印机,您可以访问,请致电PrintUtility.getPrinterServiceNameList();包含所有可行登记的打印机名称的List。
package com.stackoverflow.print;
import java.awt.print.PrinterJob;
import javax.print.PrintService;
import java.util.List;
import java.util.ArrayList;
public final class PrintUtility {
/**
* Retrieve a Print Service with a name containing the specified PrinterName; will return null if not found.
*
* @return
*/
public static PrintService findPrintService(String printerName) {
printerName = printerName.toLowerCase();
PrintService service = null;
// Get array of all print services
PrintService[] services = PrinterJob.lookupPrintServices();
// Retrieve a print service from the array
for (int index = 0; service == null && index < services.length; index++) {
if (services[index].getName().toLowerCase().indexOf(printerName) >= 0) {
service = services[index];
}
}
// Return the print service
return service;
}
/**
* Retrieves a List of Printer Service Names.
*
* @return List
*/
public static List getPrinterServiceNameList() {
// get list of all print services
PrintService[] services = PrinterJob.lookupPrintServices();
List list = new ArrayList();
for (int i = 0; i < services.length; i++) {
list.add(services[i].getName());
}
return list;
}
/**
* Utility class; no construction!
*/
private PrintUtility() {}
}