借助iText 5,我想从给定的PDF文件中提取所有TIFF图像,并将它们另存为TIFF文件。
示例和其他帖子(12)使用以下方法:


从PDF流中创建PdfImageObject,该流在line 189中解码图像流(如果存在相应的过滤器实现)。
调用PdfImageObject#getImageAsBytes(),它返回JPEG(原始),PNG(重新编码)或TIFF(每像素8位)。


结果,具有1位色深的TIFF图像被转换为​​PNG,这不是我所需要的。

另一种方法是调用PdfImageObject#getBufferedImage(),它将在步骤(2)中将图像解码为光栅,然后再次使用ImageIO.write(bufferedImage, "tiff", file)将其编码为TIFF。

可以看出这是无效的。 this post中显示的另一种解决方案演示了如何通过在TIFF标头之前添加TIFF图像流来将编码的TIFF图像流保存到文件中-这就是我正在寻找的解决方案。

iText可以在这里提供帮助吗?

最佳答案

PDF图像不是TIFF图像。

但是,PDF可以包含使用TIFF中也使用的压缩技术的图像,例如Flate,CCITT,LZW,JPEG。

09-10 07:41
查看更多