检查 PDF 文档中使用的图像压缩?

平面设计 adobe-photoshop pdf
2022-02-16 21:24:44

是否可以找出 PDF 文档中的图像使用了哪些压缩算法?

2个回答

您可以pdfimages -list $file在 Unix/Linux 系统上使用,在 Windows 上也许您可以安装 poppler 以访问该工具(请参阅https://en.wikipedia.org/wiki/Pdfimages)。请注意,这是一个命令行应用程序,没有图形用户界面。它的输出看起来像

page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image    1240  1753  gray    1   8  image  no         8  0   150   150  301K  14%
   2     1 image    1240  1753  gray    1   8  image  no        22  0   150   150  281K  13%
   3     2 image    1240  1753  gray    1   8  image  no        36  0   150   150  336K  16%

在该enc列告诉您编码算法的地方,可能的值列pdfimages.

有点。

如果您在文本编辑器中打开 PDF,您会发现每张图片都有这样的一行:

<</Subtype/Image/Length 7986/Filter/FlateDecode/BitsPerComponent 8/ColorSpace 34 0 R/Width 368/Height 110/Type/XObject>>stream
...

此图像使用 FlateDecode 过滤器,“基于 zlib/deflate 算法(又名 gzip,但不是 zip)的常用过滤器”

<</Subtype/Image/Length 892/Filter/DCTDecode/BitsPerComponent 8/ColorSpace 34 0 R/Width 44/Height 23/Type/XObject>>stream
...

此图像使用 DCTDecode 过滤器,“基于 JPEG 标准的有损过滤器”

过滤器定义来自Portable Document Format Wikipedia 页面,其中列出了所有支持的过滤器。

但是,在文本编辑器中很难确定哪个图像是哪个图像 - 对象不一定按阅读顺序出现。将 PDF 分成单页可能会有所帮助。

我认为Enfocus Pitstop Pro是一个 Acrobat 插件,很可能会在其对象检查器中为您提供此信息(以及尺寸、位置、DPI 等),但我不再拥有它,而且似乎找不到任何提及这个特定的属性在他们的手册中。