2012-05-07 68 views
4

如何在java中打印缓冲图像? 我们可以发送FileInputStream到Print Service,但是我需要发送缓冲的图像给它。如何在java中打印图像

FileInputStream fin = new FileInputStream("YOurImageFileName.PNG"); 
Doc doc = new SimpleDoc(fin, DocFlavor.INPUT_STREAM.GIF, null); 
job.print(doc, pras); 

这可能吗?

查看完整密码here

+1

类似的问题已经被问StackOverflow上,勾选[这个问题](http://stackoverflow.com/questions/5338423/print-a-image-with-actual-size-在-JAVA) – AurA

回答

5
PrinterJob printJob = PrinterJob.getPrinterJob(); 
printJob.setPrintable(new Printable() { 
     public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException { 
       if (pageIndex != 0) { 
        return NO_SUCH_PAGE; 
       } 
       graphics.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null); 
       return PAGE_EXISTS; 
     } 
});  
try { 
    printJob.print(); 
} catch (PrinterException e1) {    
    e1.printStackTrace(); 
}