PDF尺寸较大但质量较差

时间:2016-01-03 22:03:10

标签: pdf imagemagick imagemagick-convert

我正在组织大量的PDF,其中一些需要反转,或者调整对比度。但是,当我使用convert修改PDF时,新文件大小会比原始文件大小大得多,使用densityquality命令来实现原始质量。典型的命令如下所示:

convert -density 300 OrignalPDF.pdf -quality 100 -negate NewPDF.pdf

这导致pdf看起来几乎和原始版本一样清晰,但是当在两者之间切换时(原版在pdf查看器的设置(qpdfview)中反转),人们注意到新的看起来非常非常稍微收缩,并且所有线条都变得稍微厚一点。显然这不是太糟糕,但是我不应该在几乎没有明显变化的情况下反转颜色吗?

当注意到大小差异时,这种轻微的变化变得更加荒谬:原始图像为276 KB,修改后的文件为28 MB。这比它大100多倍!鉴于我有数百个PDF,其中超过20或30个需要(自定义)修改,如何保持总大小接近原始总大小,同时保持质量?

1 个答案:

答案 0 :(得分:2)

Imagemagick' s documentation说:

  

然而,这些格式的阅读非常复杂,因为它们是专门设计用于在高质量激光打印机上生成打印页面的完整计算机语言。这远远超出了ImageMagick的范围,因此它依赖于一个专门的委托程序,称为" ghostscript"阅读,并将Postscript和PDF页面转换为光栅图像。

因此,ImageMagick首先将PDF转换为光栅图像,然后从此光栅图像生成简单的PDF。并且输出PDF是不可搜索的,不包含矢量,没有隐藏文本等,而只包含页面宽的光栅图像。但PDF(和PostScript)不仅仅是一组图像,而是一组命令,文本,矢量,字体,甚至是内部的子脚本(例如,计算输出颜色)。 PDF更像是应用程序而不是静态图像。

Anywa,我想你可能有两种类型的输入PDF文件:

  1. 内部有页面范围的图像(例如,扫描的文档)。您应该只使用imagemagick处理第一种类型。这种类型的文件将被转换为几乎相同的文件大小。
  2. 内有纯文本和矢量(例如,PDF发票)。这种类型的文件应该使用imagemagick处理,因为转换会损坏输入文件(最后会增加输出文件的大小)。如果您仍需要调整此类文件内图像的对比度或压缩率,请考虑直接使用ghostscript,请检查此tutorial