@Override public Object getSupportedAttributeValues(Class<? extends Attribute> category, DocFlavor flavor, AttributeSet attributes) { return delegate.getSupportedAttributeValues(category, flavor, attributes); }
public class MediaTest { public static void main(String[] args) { PrintService[] printServices = PrintServiceLookup.lookupPrintServices( DocFlavor.SERVICE_FORMATTED.PRINTABLE, null); for (PrintService printService : printServices) { System.out.println(printService.getName()); Media[] supportedMedia = (Media[]) printService.getSupportedAttributeValues( Media.class, DocFlavor.SERVICE_FORMATTED.PRINTABLE, null); for (Media media : supportedMedia) { if (media instanceof MediaSizeName) { handleMediaSizeName((MediaSizeName) media); } } } } private static void handleMediaSizeName(MediaSizeName mediaSizeName) { StringBuilder builder = new StringBuilder(" " + mediaSizeName.toString()); MediaSize mediaSize = MediaSize.getMediaSizeForName(mediaSizeName); if (mediaSize != null) { float[] size = mediaSize.getSize(MediaSize.MM); builder.append(" - ").append(size[0]).append("x").append(size[1]).append("mm"); } System.out.println(builder.toString()); } }
public void print(PrinterJob printerJob) throws PrinterException { HashPrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet(); Media[] res = (Media[]) printerJob.getPrintService().getSupportedAttributeValues(Media.class, null, null); for (int i = 0; i < res.length; i++) { System.out.println("res[" + i + "]=" + res[i]); System.out.println(res[i].toString()); if (res[i].toString().equals(printerMedia)) { attributes.add(res[i]); } } printerJob.print(attributes); PageFormat pageFormat = printerJob.getPageFormat(attributes); System.out.println("[after opening]"); printPageFormat(pageFormat); pageFormat.setOrientation(PageFormat.PORTRAIT); printerJob.setPrintable(new TestSequenceInstanceLabel.MyPrintable(this), pageFormat); try { printerJob.print(); } catch (PrinterException ex) { ex.printStackTrace(); } }