【问题标题】:Printing multipage tiff with java用java打印多页tiff
【发布时间】:2013-06-20 18:40:35
【问题描述】:

如何在java中打印multipage.tiff文件?

我用过 DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF; 但它不起作用。
有没有其他方法或 docflavor 来打印这个可分页文件???
这就是我们正在做的示例代码,

public class Printing { 

 public static void main(String[] args) throws Exception{  

 IIORegistry registry = IIORegistry.getDefaultInstance();    
 registry.registerServiceProvider(new com.sun.media.imageioimpl.plugins.tiff.TIFFImageWriterSpi());    
 registry.registerServiceProvider(new com.sun.media.imageioimpl.plugins.tiff.TIFFImageReaderSpi());     


   String filename = "C:/Users/trainees/Desktop/abcd.TIFF";  
   PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();  
   DocFlavor flavor = DocFlavor.INPUT_STREAM.JPEG;  

   PrintService printService[] =   
   PrintServiceLookup.lookupPrintServices(flavor, pras);  
   PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();  
   PrintService service = defaultService;  

   if (service != null) {  
      DocPrintJob job = service.createPrintJob();  
      FileInputStream fis = new FileInputStream(filename);  
      DocAttributeSet das = new HashDocAttributeSet();  
      Doc doc = new SimpleDoc(fis, flavor, das);  
      job.print(doc, pras);  
      Thread.sleep(10000);  
   }  
   System.exit(0);  
}  

}

【问题讨论】:

  • 出于质量目的,我不想将 .tiff 文件转换为 .pdf 文件。
  • 您可能需要实现Printable 并直接渲染图像,查看Printing 了解更多详情。只要知道您将负责重新缩放。此外,您需要使用ImageIO 来加载文件,但还需要JAI ImageIO plugin 才能使其工作
  • 伙计,我们正在使用同样的东西(可打印,JAI),但它没有打印.tiff 文件。
  • 您需要更深入地了解 Print API,而不是依赖较新的属性 API,您需要使用类似 @987654331 的东西直接将图像渲染到 Graphics 上下文@

标签: java swing file printing tiff


【解决方案1】:

您可以使用book.append(this,pageformat,pages); 方法创建java.awt.print.Book 并将每个页面附加到Book。然后打印将打印所有 tiff 页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多