使用一个4x6的\ java中打印的gif”文件(Print gif using java on a

2019-09-24 04:00发布

什么是Java打印为给定GIF的最好方式byte[]ByteArrayInputStream在纸上的大小为4×6英寸?

这个:

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。 这应该是几乎一样的包javax.print中的说明

Answer 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);

采用日本明信片介质尺寸的伎俩了。



文章来源: Print gif using java on a 4x6\" paper