Question

Quelle est la meilleure façon d'imprimer en Java un gif donné comme byte[] ou ByteArrayInputStream sur un papier avec une taille de 4x6 pouces?

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

ne fonctionne pas parce que le MediaSize est pas un PrintRequestAttribute. Cela devrait être à peu près les mêmes que dans Package javax .print description de

Était-ce utile?

La solution

J'ai trouvé un moyen de résoudre mon problème

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

L'astuce a utilisé comme carte postale japonaise format de support.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top