2009-08-17 5 views
3

Quelle est la meilleure façon en Java pour imprimer un fichier GIF donné comme byte[] ou ByteArrayInputStream sur un papier avec une taille de 4x6 poucesgif Imprimer en utilisant java sur un 4x6" papier

Ce:

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 PrintRequestAttribute. Cela devrait être à peu près les mêmes que dans Package javax.print Description

Répondre

1

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 consistait à utiliser une carte postale japonaise comme taille de support.

+0

Voter pour celui-ci. Cela m'a permis de résoudre rapidement certains problèmes de taille de papier par défaut lors de l'impression d'une imprimante d'étiquettes thermiques 4x6 dans CUPS (Linux, Mac), merci. – tresf

Questions connexes