2009-08-17 9 views
3

mit Java Was in Java der beste Weg ist, einen gif gegeben als byte[] oder ByteArrayInputStream auf einem Papier mit einer Größe von 4x6 ZollPrint gif auf einem 4x6" Papier

Dies zu drucken:?

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

funktioniert nicht, weil die Mediengröße kein PrintRequestAttribute ist. Dies sollte fast das gleiche sein wie in Package javax.print Description

Antwort

1

ich einen Weg gefunden, um mein Problem zu lösen

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

Der Trick war, japanische Postkarte als Mediengröße zu verwenden.

+0

Wählen Sie dies auf. Das brachte mich schnell aus der Klemme, um einige Probleme mit der Standardpapiergröße zu beheben, die auf einem 4x6 Thermo-Etikettendrucker in CUPS (Linux, Mac) gedruckt wurden, danke. – tresf