PrintServiceLookup.lookupPrintServices(null,null)非常慢

时间:2015-09-15 06:19:47

标签: java

我们的系统中有打印。需要获取打印信息。 使用 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());
                }
            }
        }
    }
  }
}

当拿到托盘时,它也带有纸张类型。但我只需要纸张来源。

0 个答案:

没有答案