加快(但保持文件较小)将多个PNG转换为PDF?

时间:2017-08-01 03:36:35

标签: performance pdf imagemagick compression graphicsmagick

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

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

清理完{1}张图片后,我使用this ImageMagick command将其重组为.png

pdf

结果magick.exe convert -compress Group4 -type bilevel -monochrome input/images/path file_out.pdf 实际上小于file_out.pdf但是Group4只需要25秒就能压缩18张图像(大小从58kb到140kb不等)。 以这种方式将所有图像转换为9k + pdf需要65小时:'(

同样的事情来自GraphicsMagick

file_in.pdf

gm convert -compress Group4 -type bilevel -monochrome input/images/path file_out.pdf 膨胀为,超过file_out.pdf 的40倍。

我错过了什么?我认为GraphicsMagick应该比ImageMagick更精简/更精简。

1 个答案:

答案 0 :(得分:1)

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

如果您的输入PDF已经是黑/白,那么您只需要压缩组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