Печать gif с использованием java на бумаге размером 4x6 дюймов

StackOverflow https://stackoverflow.com/questions/1290937

Вопрос

Каков наилучший способ в Java распечатать gif, заданный как byte[] или ByteArrayInputStream на бумаге размером 4x6 дюймов?

Это:

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.описание печати

Это было полезно?

Решение

Я нашел способ решить свою проблему

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

Хитрость заключалась в использовании японской открытки в качестве формата носителя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top