我正在寻找默认打印机的默认媒体以提取 PageFormat 而无需调用 PrinterJob 的 pageDialog。目前,我的代码如下所示:
PrintService defaultPrintService = PrintServiceLookup.lookupDefaultPrintService();
Media res = (Media)defaultPrintService.getDefaultAttributeValue(Media.class);
PrintRequestAttributeSet attr_set = new HashPrintRequestAttributeSet();
attr_set.add(res);
PrinterJob pj = PrinterJob.getPrinterJob();
PageFormat pageFormat = pj.getPageFormat(attr_set);
它做我需要它做的事情。不幸的是,调用 getDefaultAttributeValue 函数需要相当长的时间。我猜它会对打印机本身进行查询?无论如何,主要问题是是否有一种更有效、成本更低的方法来查找打印机的默认介质类型。