减少ITextPDF中的图像大小(字节)

时间:2013-02-28 06:35:25

标签: java itext

我正在使用itext PDF库在Java中构建一个图像密集型的PDF文档。每个页面上都有十几张图片。原始源图像的分辨率非常高,我使用scaleToFit将图像渲染到我需要的尺寸。

我遇到的问题是PDF文档仍然很大。我的理解是包含整个原始高分辨率图像,我使用的缩放仅影响实际渲染,而不影响文件中包含的图像的大小。

我通过删除缩放来验证这一点 - 页面是在高分辨率图像彼此重叠和页面边缘的情况下渲染的,而PDF与缩放到位时的大小相同。

所以,这就是问题 - 如何通过缩小每个图像来缩小PDF文件的大小?如果我失去了一点图像质量,那就没关系。手动重新缩放源图像将很困难。

1 个答案:

答案 0 :(得分:9)

所以我找到了办法。我现在将图片加载到BufferedImage,然后使用此处的提示进行缩放:how do I scale a BufferedImage

这给了我BufferedImage - 我然后使用

将其转换为iText图像
        Image returnedImage = Image.getInstance ( pcb, bufferedImage, quality );

quality目前为0.6。这对我正在做的工作是可以接受的。