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

¿Fue útil?

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
scroll top