我有一个包含文本和图像的 PDF 文件。查看文档属性,我可以找到文档的尺寸(例如 297 毫米 x 210 毫米)。我想知道的是图像的尺寸。不是分辨率(以像素为单位),而是如果我打印 PDF 文件,它在纸上显示的大小。
我怎样才能从数字文件中获取该信息,而无需打印并手工测量?
答案1
这最终取决于 PDF 文件如何使用图像。PDF 规范第 209 页包含一个如何在页面上定位图像的示例:
示例 此示例定义了一个宽 256 个样本、高 256 个样本的图像,在 DeviceGray 颜色空间中每个样本 8 位。它将图像绘制在页面上,其左下角位于当前用户空间的坐标 (45, 140) 处,并缩放到 132 个用户空间单位的宽度和高度。
% Page object
20 0 obj
<<
/Type /Page
/Parent 1 0 R
/Resources 21 0 R
/MediaBox [0 0 612 792]
/Contents 23 0 R
>> endobj
% Resource dictionary for page
21 0 obj
<<
/ProcSet [ /PDF /ImageB ]
/XObject << /Im1 22 0 R >>
>> endobj
% Image XObject
22 0 obj
<<
/Type /XObject
/Subtype /Image
/Width 256
/Height 256
/ColorSpace /DeviceGray /BitsPerComponent 8 /Length 83183
/Filter /ASCII85Decode
>>
stream 9LhZI9h\GY9i+bb;,p:e;G9SP92/)X9MJ>^:f14d;,U(X8P;cO;G9e];c$=k9Mn\]
...Image data representing 65,536 samples...
8P;cO;G9e];c$=k9Mn\]~>
endstream
endobj
% Contents of page
23 0 obj
<<
/Length 56
>>
stream
q
132 0 0 132 45 140 cm % Translate to (45,140) and scale by 132
/Im1 Do % Paint image
Q
endstream endobj
最后一个对象(编号 23)包含一个命令,用于平移和缩放图像并绘制图像。PDF 中的命令可能看起来类似(或更复杂),您需要检查它们以找出图像绘制的位置和大小。
mutool
您可以通过解压缩流(例如)并在文本编辑器中打开它来查看 PDF 文件。