2

可以使用 Java Print Service API 获取默认系统打印机吗?

我可以使用获取所有打印机的列表

PrintServiceLookup.lookupPrintServices(null, null)

但是如何在系统中将打印机选为默认打印机?(在下面的屏幕截图中,默认打印机被选中(HP Laser Jet))。

选择的默认打印机

4

3 回答 3

12

你应该使用PrintServiceLookup

import javax.print.PrintServiceLookup;
PrintService service = PrintServiceLookup.lookupDefaultPrintService(); 

会计。到 Javadocs:

lookupDefaultPrintService查找此环境的默认打印服务。这可能会返回 null。如果多个查找服务每个都指定一个默认值,则选择的服务不是精确定义的,而是平台原生服务,而不是已安装的服务,通常作为默认值返回。如果没有明确可识别的平台原生默认打印服务,则以实现依赖的方式将默认设置为第一个。

于 2013-01-24T12:21:32.477 回答
3

您可以使用PrintServiceLookup.lookupDefaultPrintService

PrintService service = 
    PrintServiceLookup.lookupDefaultPrintService();
if (service != null) {
    String printServiceName = service.getName();
    System.out.println("Print Service Name is " + printServiceName);
} else {
    System.out.println("No default print service found");
}
于 2013-01-24T12:19:33.973 回答
2
 PrintService service = 
                PrintServiceLookup.lookupDefaultPrintService();
于 2013-01-24T12:19:20.787 回答