我一直在使用 ilovepdf.com 上的网络服务来压缩一些 PDF 文件。所谓“一些”,指的是“几百到几千个”。输出文件看起来完全相同(在我看来),大小为原始文件大小的 95%,每隔 20 个或 30 个文件大小会减小 50%。我对输出结果很满意,但传输时间(上传原始文件、下载压缩文件)很长。每个文件需要 1-3 分钟。此外,我并不是一个付费客户,最近我被限制到每个文件需要 10-20 分钟。
我尽量不做一个寄生虫,而且无论如何我一直希望在某个时候转换到一些本地解决方案。
我开始进行研究(过去几年我断断续续地尝试过各种解决方案,但从未找到更好的解决方案……过去几年,我没有进行批量压缩),我发现 ilovepdf.com 使用了另一家公司开发的库/框架,该公司的网站是 pdf-tools.com。
他们提供了一个命令行版本,我下载并试用了它。使用正确的设置,我看到了类似的尺寸缩小和输出。但是,他们甚至没有在网站上列出价格,而是有一个“请求报价”按钮。我想我还没开始就被价格吓到了。但与此同时,我发现了 ilovepdf.com 至少在做的事情。
pdfoptimize -v -se -or -od -oc -s -m -cff -sm -fc 8 -q 60 -lk [trial license key] input.pdf output.pdf
他们的选择细目如下:
- -或:删除多余的对象
- -od :优化资源
- -oc :剪辑图像(剪辑到 pdf 中显示的部分,显然是某种裁剪)
- -s :子集嵌入字体程序
- -m :合并嵌入的字体程序
- -sm:剥离元数据(这可能也由-se 涵盖)
- -fc:连续压缩类型(彩色和单色);8 = JPEG2000 压缩
- -q:质量,按照典型的 jpeg 质量...我不需要将其设置为 60 这么低就可以获得不错的减少量
经过进一步测试(-cff 和 -se),其中一些选项似乎根本没有减少文件大小,因此我将它们从列表中删除。
这些操作中有多少可以用开源工具(尤其是 ghostscript)完成?我不需要相同的输出(我对 pdf 文件格式有足够的了解,知道这是不可能的),只需要类似地减少输出。