还有其他
PrintServiceAttribute实现,但是如果您想获取更多…
这只是一个 肮脏的 代码,您还可以获取不受支持的doc值:
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null); //get printersfor (PrintService printService : printServices) { System.out.println("Found print service: " + printService); Set<Attribute> attribSet = new linkedHashSet<Attribute>(); Class<? extends Attribute>[] supportedAttributeCategories = (Class<? extends Attribute>[]) printService.getSupportedAttributeCategories(); for (Class<? extends Attribute> category : supportedAttributeCategories) { DocFlavor[] flavors = printService.getSupportedDocFlavors(); for (DocFlavor flavor : flavors) { Object supportedAttributevalues = printService.getSupportedAttributevalues(category, flavor, printService.getAttributes()); if (supportedAttributevalues instanceof Attribute) { Attribute attr = (Attribute) supportedAttributevalues; attribSet.add(attr); } else if (supportedAttributevalues != null) { Attribute[] attrs = (Attribute[]) supportedAttributevalues; for (Attribute attr : attrs) { attribSet.add(attr); } } } } for (Attribute attr : attribSet) { System.out.println(attr.getName()); System.out.println(printService.getDefaultAttributevalue(attr.getCategory())); }}注意: 您可能会看到重复的值,但是可以对其进行过滤。



