【问题标题】:PDF Compression - HTML to PDF (wkhtmltopdf)PDF 压缩 - HTML 到 PDF (wkhtmltopdf)
【发布时间】:2016-10-07 05:42:19
【问题描述】:

背景

我正在处理一个 Scala/Java 项目,我们将单个 HTML 文件转换为 PDF 文件。然后我们将单个文件合并为一个更大的完整 PDF 文件。

对于转换,我们使用的是建立在 wkhtmltopdf 之上的sPDF。对于合并,我们使用PDFMergerUtility

制作单个文件的原因有点复杂 - 但应该注意的是,我们不能立即制作一个大 PDF,而必须先制作单个文件。

问题

最初我们对这种方法没有任何问题 - 但随着系统的发展 - 最终的 PDF 文件也有问题。我们从 2MB-3MB 的文件变为 20MB 的文件。我想知道我们是否可以使用任何明显的压缩方法或技术?

各个文件之间有很多共享内容,但由于我们只是将它们合并为独立/独立的文件(例如,各个文件中没有相同的内容正在被重复使用以节省空间)它在降低文件大小方面没有任何区别。

如果我手动压缩最终的 PDF 文件,它会大大减小文件大小 - 因为显然有很多重复的内容。

因此,一种选择可能是在我完成合并后压缩 PDF,但我更愿意在合并过程或转换过程中压缩它。 有什么想法吗?

【问题讨论】:

  • 你尝试过 wkhtmltopdf 的 --lowquality 选项吗?它为我减少了生成文件的大小,它从 8MB 减少到了仅仅 200kb

标签: java pdf merge compression wkhtmltopdf


【解决方案1】:

您可以尝试Sejda 进行合并,它是 Java、开源并基于 PDFBox 的一个分支。它可以使用对象流生成 PDF 文件(PDFBox 当前不支持),如果它没有减少那么多的大小,您可以尝试通过管道传递其“压缩”任务,该任务通过文档删除未使用的资源和压缩图像。

它作为PDFsam 后面的引擎经过了实战测试,因此,如果您想对其进行快速测试并查看结果,只需下载 PDFsam,将合并模块与您的文件一起使用(并打开压缩标志),结果是Sejda 将生成什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 2012-10-09
    • 2011-06-24
    • 2010-11-22
    相关资源
    最近更新 更多