Imprimir gif usando java en un documento de 4x6"
-
18-09-2019 - |
Pregunta
¿Cuál es la mejor manera en Java para imprimir un gif dado como byte[]
o ByteArrayInputStream
en un papel con un tamaño de 4x6 pulgadas?
Este:
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);
no funciona debido a que el MediaSize no es un PrintRequestAttribute. Esto debería ser casi el mismo que en javax Paquete .print Descripción
Solución
He encontrado una manera de resolver mi problema
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);
El truco estaba usando postal japonesa como el tamaño de los medios de comunicación.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow