PDF压缩的java(PDF compression java)

2019-09-27 03:40发布

我想,以优化我们的基于Java的系统生成的PDF文件的大小。 我首先想到的是将它们转换为灰度,以减少他们的图像的大小。 你知道任何其他工具,最好是一个Java库或组件,它可以用于PDF文档缩小尺寸是多少?

Answer 1:

如果输入图像具有更大的尺寸,我建议你将它们添加到PDF文件之前缩小他们。 在纯Java,你可以做到这一点希望像

Image image; // Say you have loaded the larger image
image = image.getScaledInstance(width, height, 0);  // where width and height is something like 640x480
// Now save the image to some temporary file and use the shrunk version in your pdf file.

小心保持纵横比。 检查的ImageIO API发现骗子的Java 1.4.2+保存JPEG文件。



Answer 2:

您可以使用PdfStamper setFullCompression放气的PDF。



Answer 3:

的Acrobat Pro 9&X都有一个“太空审计”功能,会告诉你,你的PDF的部分占用了大部分空间,这样你就不会浪费你的时间固定的东西都没有损坏。

例如,如果你不小心,你可能会意外地包括一个给定的字体或图像的多个副本。 静态的页眉和页脚可以被放置在上相应的页面重复使用一个单一的PdfTemplate。

进口各种页面时PdfSmartCopy将合并相同的流。 它不会合并字体子集。 我不知道外面Adobe的,做任何PDF软件。



Answer 4:

你越来越压缩PDF文件? 如果没有,你可以使用iText的阅读PDF和写个压缩PDF。



Answer 5:

您可以通过使用一种叫做“对象流”功能减少PDF文件的大小。 对象流不被支持的iText,但你可以使用后处理像PDFLeo一些工具生成的PDF文件。 见http://mdn.morovia.com/manuals/pdfleo-1/PDF-Optimization-Size-Reduction.php获取更多信息。

如果降低图像颜色深度,你可能湾创造了iText的PDF格式之前这样做。 在某些情况下,使用JPEG格式或降低颜色深度为256个色将节省大量的空间。



Answer 6:

如果您的图像由向量的,也就是说,如果你使用的Graphics2D绘制图像的情况下,与如JFreeChart的图表,你可以将其添加为iText的图像,他们将被绘制在PDF中的载体。 这极大地减少相对于二值图像的大小。

此外,您也可以通过在读取和写入PDF,或在发电规模的一次使用Java的ImageIO的API的图像。



文章来源: PDF compression java