我正在使用itext PDF库在Java中构建一个图像密集型的PDF文档。每个页面上都有十几张图片。原始源图像的分辨率非常高,我使用scaleToFit
将图像渲染到我需要的尺寸。
我遇到的问题是PDF文档仍然很大。我的理解是包含整个原始高分辨率图像,我使用的缩放仅影响实际渲染,而不影响文件中包含的图像的大小。
我通过删除缩放来验证这一点 - 页面是在高分辨率图像彼此重叠和页面边缘的情况下渲染的,而PDF与缩放到位时的大小相同。
所以,这就是问题 - 如何通过缩小每个图像来缩小PDF文件的大小?如果我失去了一点图像质量,那就没关系。手动重新缩放源图像将很困难。
答案 0 :(得分:9)
所以我找到了办法。我现在将图片加载到BufferedImage
,然后使用此处的提示进行缩放:how do I scale a BufferedImage。
这给了我BufferedImage
- 我然后使用
Image returnedImage = Image.getInstance ( pcb, bufferedImage, quality );
quality
目前为0.6。这对我正在做的工作是可以接受的。