首先,在 PDF 中被称为“图像”的东西,从定义上来说总是光栅图像。不存在所谓的“矢量图像”。即使原始文件包含矢量图形并转换为 PDF,转换程序也可以决定将其作为光栅图像包含在内。如果你提取它,你将得到的不是矢量图形,而是光栅图像。PDF 中保留的光栅图像不能通过pdfimages进行提取。
其次,你不需要使用 pdfimages 提取图像。只要您使用当前版本(v0.20.2 之后)的 Poppler fork 的 pdfimages,就可以使用 -list 参数获取特定范围 PDF 页面上所有图像的列表:
"pdfimages -list -f 7 -l 8 ct-magazin-14-2012.pdf
第7页 序号 类型 宽度 高度 颜色 压缩 每像素位数 编码方式 插值方式 对象ID
--------------------------------------------------------
0 图像 581 838 RGB 3 8 JPEG 否 39 0
1 图像 4 4 RGB 3 8 图像 否 40 0
2 图像 314 332 RGB 3 8 JPX 否 44 0
3 图像 358 430 RGB 3 8 JPX 否 45 0
4 图像 4 4 RGB 3 8 图像 否 46 0
5 图像 4 4 RGB 3 8 图像 否 47 0
6 图像 4 6 RGB 3 8 图像 否 48 0
7 图像 596 462 RGB 3 8 JPX 否 49 0
8 图像 4 6 RGB 3 8 图像 否 50 0
9 图像 4 4 RGB 3 8 图像 否 51 0
10 图像 8 10 RGB 3 8 图像 否 41 0
11 图像 6 6 RGB 3 8 图像 否 42 0
12 图像 113 27 RGB 3 8 JPX 否 43 0
13 图像 582 839 灰度 1 8 JPEG 否 2080 0
14 图像 344 364 灰度 1 8 JPX 否 2079 0"
< p >
注意:这个版本的
pdfimages
是从Poppler中获取的(来自XPDF的版本
尚未支持此新功能)。
正如您所看到的,这列出了图像的相应宽度和高度。然而,这还不能(现在)给你任何有关DPI的线索。如果将大型光栅图像挤压到PDF页面上的小空间中,则DPI值将非常高。(这也是plinth对自己答案的评论所强调的内容...)
为了计算DPI,您必须测量图像在页面上显示时的宽度/高度(您可以使用Acrobat / Reader中的工具之一来完成),然后使用上面输出的相应信息来计算DPI。
更新
pdfimages
的最新版本现在在额外的列中直接显示了所包含图像的实际分辨率(DPI)。获得这些信息是问题的最初目标:
pdfimages -list -f 6 -l 7 example.pdf
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
6 0 图像 1901 1901 rgb 3 8 image no 632 0 1818 1818 468K 4.4%
6 1 图像 1901 1901 rgb 3 8 image no 645 0 1818 1818 521K 4.9%
新的输出格式还显示了每个图像的相应水平和垂直分辨率('x-ppi','y-ppi')。它还给出了以存储空间为单位的图像实际大小('size')和它们的压缩比('ratio')。
感谢@Eric提供的更新提示,指出了pdfimages
的这些新功能。