【问题标题】:Large PDF sizes but less qualityPDF 尺寸较大但质量较差
【发布时间】:2016-04-07 12:48:52
【问题描述】:

我正在整理大量 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 个需要(自定义)修改,我怎样才能在保持质量的同时保持总大小接近原始总大小?

【问题讨论】:

  • 您可以在修改后的 PDF 中选择文本吗?很可能不会,因为文件大小听起来就像文档变成了图像一样。我是否可以建议考虑使用 Acrobat 进行此类转换...
  • @MaxWyss 这些文件最初是扫描的图像,以 pdf 格式提供给我。我想在最后形成所有文件的pdf。

标签: pdf imagemagick imagemagick-convert


【解决方案1】:

Imagemagick 的 documentation 说:

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

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

无论如何,我想您可能有两种类型的输入 PDF 文件:

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

【讨论】:

  • 不幸的是,我的文件都是第一种类型:扫描的整页图像,而convert 仍然会膨胀。有什么提示吗?
  • 这使解决方案更容易!似乎您只需要找到最佳压缩方式,请参阅 -compress 选项和imagemagick.org/script/command-line-options.php?#compress
  • 只要确保您选择的压缩不会损坏输入(检查 2-3 个文件)。无损压缩(Lossless、LZW、RLE、ZIP、BZIP)提供更大的文件,而传真、JPEG 可能会显着减小文件大小,但确保它们不会损坏文本(JPEG 会在文本周围添加模糊并使 OCR 变得更加困难)
  • 谢谢!有机会我会试试的!
  • 好的,我尝试了所有无损选项,最好的是 ZIP,它给我的文件大小只有 10 倍膨胀。不过,我在做什么来增加尺寸?我的文件是否已经使用有损算法进行了压缩? (如果是,我怎么知道?)
猜你喜欢
  • 2014-09-28
  • 2012-02-19
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 2019-04-13
相关资源
最近更新 更多