我们的系统中有打印。需要获取打印信息。 使用 PrintServiceLookup.lookupPrintServices(null,null)方法获取打印机信息。还可以使用 printService.getSupportedAttributeValues(Media.class,flavor,null)来获取托盘。 但这很慢。 我们是否有办法优化此次通话。
public class PrintTest
{
public static void main(String[] args)
{
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
for (int i = 0; i < services.length; i++) {
PrintService service = services[i];
System.out.println(service);
DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PAGEABLE;
Object o = service.getSupportedAttributeValues(Media.class, flavor, service.getAttributes());
if (o != null && o.getClass().isArray()) {
for (Media media : (Media[]) o) {
if (media instanceof MediaTray) {
System.out.println(media + " ID: " + media.getValue() + "\t" + media.getClass().getName());
}
}
}
}
}
}
当拿到托盘时,它也带有纸张类型。但我只需要纸张来源。