【问题标题】:PDF compression javaPDF压缩java
【发布时间】:2011-07-12 19:07:40
【问题描述】:

我正在尝试优化我们基于 Java 的系统生成的 PDF 文件大小。我的第一个想法是通过将它们转换为灰度来减小图像的大小。你知道其他任何工具,最好是java库或组件,可以用于PDF文档缩小尺寸吗?

【问题讨论】:

    标签: java image pdf compression itext


    【解决方案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 找到 con Java 1.4.2+ 以保存 jpeg 文件。

    【讨论】:

      【解决方案2】:

      您可以在 PdfStamper 上使用 setFullCompression 来压缩 PDF。

      【讨论】:

        【解决方案3】:

        Acrobat Pro 9 和 X 都具有“空间审核”功能,可以告诉您 PDF 的哪些部分占用的空间最多,这样您就不会浪费时间修复未损坏的内容。

        例如,如果您不小心,可能会不小心包含给定字体或图像的多个副本。静态页眉和页脚可以放置在单个 PdfTemplate 中,以便在适当的页面上重复使用。

        PdfSmartCopy 将在导入不同页面时合并相同的流。它不会 合并字体子集。我不知道 Adob​​e 之外的任何 PDF 软件。

        【讨论】:

          【解决方案4】:

          您要压缩的 PDF 文件是否已压缩?如果没有,您可以使用iText 阅读PDF并编写压缩PDF。

          【讨论】:

          • 我正在使用 iText 生成 PDF。 iText 是否有能力将生成的 PDF 编写为压缩文件?
          • 实际上,Zoltan Hamori 有这样做的正确要求。压缩级别专门用于 Flate (zip) 压缩 IIRC。
          • @Mark Ahh,是的,你和 Zoltan 是对的。我只使用 iText 来阅读 PDF
          【解决方案5】:

          您可以使用称为“对象流”的功能来减小 PDF 文件的大小。 iText 不支持对象流,但您可以对使用 PDFLeo 等工具生成的 PDF 进行后处理。请参阅http://mdn.morovia.com/manuals/pdfleo-1/PDF-Optimization-Size-Reduction.php 了解更多信息。

          如果您减少图像颜色深度,您可能希望在 iText 中创建 PDF 之前这样做。在某些场景下,使用 JPEG 格式或将颜色深度降低到 256 色会节省大量空间。

          【讨论】:

            【解决方案6】:

            如果您的图像由矢量组成,也就是说,如果您使用 Graphics2D 来绘制图像,例如JFreeChart 图形,您可以将它们添加为 iText 图像,它们将在 PDF 中绘制为矢量。与二值图像相比,这大大减小了尺寸。

            此外,您可以通过读写 pdf 或在生成时使用 Java 的 ImageIO API 缩放图像。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2016-10-07
              • 2010-12-19
              • 2012-10-09
              • 2011-06-24
              • 1970-01-01
              • 2017-05-26
              • 2012-02-05
              相关资源
              最近更新 更多