我创建了一个Web服务,它有一个接收DataHandler参数的方法。此方法的目的是读取通过DataHandler发送的内容并将其写入文件(.tiff)。当我传入.tiff文件时,我可以很容易地进行转换,但是如何使用Java从pdf文件转换为.tiff文件。
因此,如果用户使用DataHandler传入pdf文件,我该如何将其转换为.tiff文件?
答案 0 :(得分:0)
PDDocument doc = PDDocument.loadNonSeq(new File(filename), null);
boolean b;
List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
for (int p = 0; p < pages.size(); ++p)
{
// RGB image with 300 dpi
BufferedImage bim = pages.get(p).convertToImage(BufferedImage.TYPE_INT_RGB, 300);
// alternatively: B/W image with 300 dpi
bim = pages.get(p).convertToImage(BufferedImage.TYPE_BYTE_BINARY, 300);
// save as TIF with dpi in the metadata
// PDFBox will choose the best compression for you
// you need to add jai_imageio to your classpath for this to work
b = ImageIOUtil.writeImage(bim, "page-" + (p+1) + ".tif", 300);
if (!b)
{
// error handling
}
}
如果您的问题是关于转换为多页TIFF,请说明,我也有解决方案。