3

我需要动态生成和压缩大批量的 PDF 文件。

我正在考虑常用的算法

  • 压缩
  • 高手
  • rar

欢迎任何其他建议。

我的问题是哪种算法可能会给我最小的文件大小。速度和效率也是重要因素,但尺寸是我最关心的问题。

我是否有很多小文件,或者每个档案中的大文件更少,这也会有所不同。

我的大部分处理将在 PHP 中完成,但如果需要,我很乐意与第三方可执行文件交互。

编辑:

这些文件主要是发票,不应包含除公司徽标外的任何其他图像

4

6 回答 6

6

我在压缩 PDF 方面没有取得多大成功。正如所指出的,它们在组合时已经被压缩(尽管一些 PDF 组合工具允许您指定“压缩级别”)。如果可能的话,您应该采取的第一种方法是减小组合 PDF 的大小。

如果您将 PDF 保存在单个文件中,它们可以共享任何公共资源(图像、字体),因此可以显着减小。请注意,这意味着一个大型 PDF 文件,而不是一个包含多个 PDF 的大型 ZIP。

In my experience it is quite difficult to compress the images within PDFs, and that images make by far the biggest impact on file size. Ensure that you have optimised images before you start. It is even worth running a test run without your images simply to see how much size the images are contributing.

The other component is font, and if you are using multiple embedded fonts then you are packing more data into the file. Just use one font to keep size down, or use fonts that are commonly installed so that you don't need to embed them.

于 2009-11-23T12:24:01.227 回答
1

我认为 7z 是目前最好的,RAR 排在第二位,但我建议你尝试两者来找出最适合你的。

于 2009-11-23T12:01:53.757 回答
1

如果您需要最小的文件大小,LZMA 是最好的。

当然,PDF 本身也可以压缩。

于 2009-11-23T12:03:40.053 回答
1

我怀疑你会通过压缩 PDF 来减少文件大小。但是,如果您所做的只是将多个文件收集到一个文件中,那为什么不tar呢?

于 2009-11-23T12:05:13.580 回答
1

过去,我们已经为存储大量文本的大型(和许多)PDF 执行此操作 - 澳大利亚培训组织的培训包。它大约有 96% 的文本(课程信息等)和一些小图表。大小从 1-2Mb 到 8 或 9Mb 不等,它们通常有 4 个或更多的体积。

我们发现使用 Zip OK 进行压缩可以获得良好的压缩效果,因为 PDF 格式已经被高度压缩,我们的用户可以更轻松地批量下载所有文件,而不用担心文件大小。给你一个想法,一个 2.31Mb 的文件——很多文本,几个整页图表——在 ZIP 中压缩为 1.92Mb,在 RAR 中压缩为 1.90Mb。

我建议使用 LZMA 来获得最佳效果 - 也可以查看压缩和解压缩的资源使用情况。

这些文件有多大?获取 WinRAR、WinAce 和 7Zip 的副本并在之前提供。

于 2009-11-23T12:09:48.020 回答
1

将我的漂亮工具Precomp与 7-Zip 结合使用。它解压缩 PDF 中的 zLib 流,因此 7-Zip(或任何其他压缩器)可以更好地处理它们。您将获得大约 50% 的原始大小无损的文件大小。该工具特别适用于 PDF 文件,但也适用于其他压缩 (zLib/LZW) 流,如 ZIP/GZip/JAR/GIF/PNG...

有关结果示例,请查看此处此处。预压缩 (PDF->PCF) 部分的速度可能很慢,但重新压缩/重建 (PCF->PDF) 部分的速度会非常快。

为了获得比 Precomp + 7-Zip 更好的结果,您可以尝试 lprepaq 和 prepaq 变体,但要注意,尤其是 prepaq 速度较慢 :) - 好的一面是 prepaq 提供了目前可用的最佳 (PDF) 压缩。

于 2009-11-23T12:10:26.280 回答