在大小为4x6英寸的纸张上,以byte[]
或ByteArrayInputStream
格式打印gif的最佳方法是什么?
此:
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new MediaSize(4, 6, Size2DSyntax.INCH));
aset.add(new Copies(1));
PrintService[] pservices =
PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.GIF, aset);
DocPrintJob printJob = pservices[0].createPrintJob();
Doc doc = new SimpleDoc(sap.getGraphicImageBytes(), DocFlavor.INPUT_STREAM.GIF, null);
printJob.print(doc, aset);
不起作用,因为MediaSize不是PrintRequestAttribute。这应与Package javax.print Description
中的几乎相同答案 0 :(得分:1)
我找到了解决问题的方法
PageFormat format = new PageFormat();
format.setOrientation(PageFormat.REVERSE_LANDSCAPE);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(OrientationRequested.REVERSE_LANDSCAPE);
aset.add(MediaSizeName.JAPANESE_POSTCARD);
PrinterJob printerJob = PrinterJob.getPrinterJob();
printerJob.setPrintable(new ImagePrintable(sap.getGraphicImage()));
printerJob.defaultPage(format);
printerJob.print(aset);
诀窍是使用日本明信片作为媒体大小。