这个问题说明了一切。是否存在包含具有不同 dpi(每英寸点数)图像的 PDF 文档?
还是假设如果我知道一张图像的 dpi,我就知道整个文档?
我赞成@ypnos 的回答,这是完全正确的。
但我想通过展示该pdfimages
实用程序的一个最新的新功能来补充它。
pdfimages
以前知道能够从 PDF 文件中提取图像(这是它唯一有用的目的)。但是,现在您也可以使用它来调查有关所用图像的更多详细信息,而无需提取它们。
-list
使用下一个命令,我使用新参数查询某个 PDF 文件第 7 页和第 8 页上的所有图像的数据:
pdfimages -list -f 7 -l 8 ct-magazin-14-2012.pdf 页面编号类型宽度高度颜色comp bpc enc interp 对象ID -------------------------------------------------- ------------------ 7 0 图像 581 838 rgb 3 8 jpeg no 39 0 7 1 图像 4 4 RGB 3 8 图像编号 40 0 7 2 图像 314 332 RGB 3 8 jpx 无 44 0 7 3 图像 358 430 RGB 3 8 jpx 无 45 0 7 4 图像 4 4 RGB 3 8 图像编号 46 0 7 5 图像 4 4 RGB 3 8 图像编号 47 0 7 6 图像 4 6 RGB 3 8 图像编号 48 0 7 7 图像 596 462 RGB 3 8 jpx 无 49 0 7 8 图像 4 6 RGB 3 8 图像编号 50 0 7 9 图像 4 4 RGB 3 8 图像编号 51 0 7 10 图像 8 10 RGB 3 8 图像编号 41 0 7 11 图像 6 6 RGB 3 8 图像编号 42 0 7 12 图像 113 27 RGB 3 8 jpx 无 43 0 8 13 图像 582 839 灰色 1 8 jpeg no 2080 0 8 14 图像 344 364 灰色 1 8 jpx 无 2079 0
但是请注意:此版本pdfimages
是来自 Poppler 的版本(来自 XPDF 的版本不(还?)支持此新功能):
pdf图像-版本 pdf图像版本 0.20.2 版权所有 2005-2012 Poppler 开发者 - http://poppler.freedesktop.org 版权所有 1996-2011 Glyph & Cog, LLC
该-list
选项首次出现在 2012 年 3 月 1 日发布的 Poppler v0.19.0 中。
现在,上面的列表并没有直接告诉您图像的分辨率(“dpi”)。该值取决于:此图像在 PDF 页面上呈现的尺寸是多少?
PDF 可以很容易地在 PDF 文件的不同位置使用相同的图像,在每种情况下使用不同的渲染大小。图像只需要嵌入到 PDF 中一次,但可以多次“通过引用”使用/渲染(低效构造的 PDF 可能仍包含多次相同的图像,但这是一个不同的主题......)
现在让我们弄清楚查看各个列标题可能产生的问题。他们的意思是什么?
page
num
type
image
不透明图像)、mask
(单色图像蒙版)、smask
(软蒙版图像)和stencil
(用于绘制颜色或图案的单色蒙版图像)。注意: PDF 中图像的透明度是通过使用两个单独的 PDF 对象创建的:一个用于图像,一个用于遮罩或 smask。属于透明图像的遮罩/遮罩总是直接跟随列表中的图像。width
height
color
gray
, rgb
, cmyk
, lab
(L*a*b), icc
(ICC based), index
(indexed colours), sep
(separation) 和devn
(DeviceN)。comp
bpc
enc
image
光栅图像——可以在内部使用通用/Flate
或/LZW
压缩,但不是特殊图像编码)、jpeg
(JPEG 压缩)、jpx
(JPEG2000 压缩)、jbig2
(JBIG2 压缩)和ccitt
(传真压缩)。interp
yes
在放大图像时是否请求插值。object ID
从 Poppler v0.25.0(2013 年 12 月 11 日发布)及更高版本开始,该命令pdfimages -list
现在包括新列,这些列指示PDF 渲染器在 PDF 页面中显示的每个嵌入图像的自动计算x-ppi
(水平)和(垂直)分辨率y-ppi
.
此外,还指出了每个图像(未压缩时)使用的大小(以字节/千字节为单位)及其大小压缩比(嵌入在 PDF 中)。
要显示与上述相同文件的结果(使用 Poppler v0.42.0):
page num type width height color comp bpc enc interp objectID x-ppi y-ppi size ratio
------------------------------------------------------------------------------------
7 0 image 581 838 rgb 3 8 jpeg no 39 0 73 73 2107B 0.1%
7 1 image 4 4 rgb 3 8 image no 40 0 150 150 54B 112%
7 2 image 314 332 rgb 3 8 jpx no 44 0 150 150 19.0K 6.2%
7 3 image 358 430 rgb 3 8 jpx no 45 0 150 150 15.7K 3.5%
7 4 image 4 4 rgb 3 8 image no 46 0 150 150 62B 129%
7 5 image 4 4 rgb 3 8 image no 47 0 150 150 51B 106%
7 6 image 4 6 rgb 3 8 image no 48 0 150 150 62B 86%
7 7 image 596 462 rgb 3 8 jpx no 49 0 150 150 40.7K 5.0%
7 8 image 4 6 rgb 3 8 image no 50 0 150 150 86B 119%
7 9 image 4 4 rgb 3 8 image no 51 0 150 150 62B 129%
7 10 image 8 10 rgb 3 8 image no 41 0 150 150 157B 65%
7 11 image 6 6 rgb 3 8 image no 42 0 150 150 82B 76%
7 12 image 113 27 rgb 3 8 jpx no 43 0 151 152 1090B 12%
8 13 image 582 839 gray 1 8 jpeg no 2080 0 72 72 319B 0.1%
8 14 image 344 364 gray 1 8 jpx no 2079 0 150 150 4325B 3.5%
x-ppi
y-ppi
size
ratio
使用 Do 运算符绘制图像。传递给此运算符的操作数是图像的名称。图片名称在当前页面的资源字典中查找。图像资源具有宽度(像素列数)和高度(像素行数)。PDF 页面上显示的图像的物理宽度和高度由 Do 运算符时的 CTM(当前变换矩阵)值确定。如果 CTM 等于单位矩阵,则物理宽度和高度将为 1 pt 高和 1 pt 宽。(1 磅等于 1/72 英寸)。通常,CTM 具有将 1x1 pt 正方形转换为更大图像的非恒等值。像素行数和像素列数以及图像的物理扩展决定了图像在 PDF 页面上显示时的分辨率。
示例:图像资源由 300 像素行组成。每行由 400 个像素组成。CTM 等于 [400 0 0 300 100, 100]。图像高度为 300 pts,图像宽度为 400 pts。所以分辨率在两个方向上都是 72 dpi。
简而言之:PDF 规范允许 PDF 包含各种分辨率的图像。
答案是肯定的。DPI 在每个嵌入的图像中都是独立的。
将所有图像的 DPI 重新计算到上限(如果 DPI 之前较低,则保持不变)是某些 DTP 程序的唯一常用技术。但这是可选的。顺便说一句,您还可以将(未更改的)PDF嵌入到PDF中;在这个阶段,你失去了所有可以做出的假设。