【发布时间】: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