加快(但保持文件大小低)多个 PNG 到 PDF 的转换?

Speed up (yet keep file size low) conversion of multiple PNGs to PDF?

我有 9k PDF 扫描文本需要清理 up/run OCR。每个 PDF 的页面都是保存为 .ccitt 的图像,我使用此 Poppler(对于 Windows7)命令将其提取并转换为 .png

pdfimages.exe -png file_in.pdf output/images/path

清理 .png 图像后,我使用 this ImageMagick command:

将它们重新组合成 pdf
magick.exe convert -compress Group4 -type bilevel -monochrome input/images/path file_out.pdf

结果 file_out.pdf 实际上比 file_in.pdf 小,但 Group4 最多需要 25 秒才能压缩 18 张图像(大小从 58kb 到 140kb)。 以这种方式将所有图像转换为 9k+ pdf 需要 65 小时:'(

同样的事情通过 GraphicsMagick:

gm convert -compress Group4 -type bilevel -monochrome input/images/path file_out.pdf

file_out.pdf 膨胀到 超过 file_in.pdf.

的 40 倍

我错过了什么?我认为 GraphicsMagick 应该比 ImageMagick leaner/meaner。

ImageMagick 不适用于矢量图像(如 PDF)。它将栅格化您的 PDF 并将每个点保存为 pdf 的一个元素。这可能就是为什么需要这么长时间。 PDF 现在是矢量 shell 中的光栅图像(比原始矢量图像大得多)。

如果你输入的PDF已经是black/white,那么你只需要压缩组4.

从 25 KB 的 PDF 开始

如果我只是转换它。

time magick ImageOnly.pdf result1.pdf

real    0m0.276s
user    0m0.563s
sys 0m0.038s

time magick ImageOnly.pdf -compress Group4 result2.pdf

real    0m0.275s
user    0m0.562s
sys 0m0.036s

所以不是第 4 组压缩导致它变慢。

但是,质量不会太好。所以在阅读 PDF 之前应该添加 -density 300 。但这会减慢速度。

time magick -density 300 ImageOnly.pdf -compress Group4 result3.pdf

real    0m2.026s
user    0m2.863s
sys 0m0.182s