题
问题说明了一切。是否有包含具有不同dpi(每英寸点数)的图像的PDF文档?
或者假设如果我知道一个图像的dpi,我知道整个文档的dpi?
解决方案
我upvoted@ypnos的答案,这是完全正确的。
但我想通过展示一个非常新的,新的功能来补充它 pdfimages
效用。
pdfimages
以前知道能够从PDF文件中提取图像(这是它唯一有用的目的)。 但是,现在您也可以使用它来调查有关所使用图像的更多详细信息,而无需提取它们。
使用下一个命令,我查询某个PDF文件的第7页和第8页上所有图像的数据,使用新的 -list
参数:
pdfimages -list -f 7 -l 8 ct-magazin-14-2012.pdf page num type width height color comp bpc enc interp object ID --------------------------------------------------------------------- 7 0 image 581 838 rgb 3 8 jpeg no 39 0 7 1 image 4 4 rgb 3 8 image no 40 0 7 2 image 314 332 rgb 3 8 jpx no 44 0 7 3 image 358 430 rgb 3 8 jpx no 45 0 7 4 image 4 4 rgb 3 8 image no 46 0 7 5 image 4 4 rgb 3 8 image no 47 0 7 6 image 4 6 rgb 3 8 image no 48 0 7 7 image 596 462 rgb 3 8 jpx no 49 0 7 8 image 4 6 rgb 3 8 image no 50 0 7 9 image 4 4 rgb 3 8 image no 51 0 7 10 image 8 10 rgb 3 8 image no 41 0 7 11 image 6 6 rgb 3 8 image no 42 0 7 12 image 113 27 rgb 3 8 jpx no 43 0 8 13 image 582 839 gray 1 8 jpeg no 2080 0 8 14 image 344 364 gray 1 8 jpx no 2079 0
注, ,然而:这个版本的 pdfimages
是来自Poppler的那个(来自XPDF的那个做 不是 (但是?)支持这个新功能):
pdfimages -version pdfimages version 0.20.2 Copyright 2005-2012 The Poppler Developers - http://poppler.freedesktop.org Copyright 1996-2011 Glyph & Cog, LLC
该 -list
option首次出现在2012年3月1日发布的Poppler v0.19.0中。
现在,上面的列表并没有直接告诉您图像的分辨率("dpi")。该值取决于: 此图像在PDF页面上呈现的大小是多少?
一个PDF可以很容易地在一个PDF文件的不同点使用相同的图像,使用不同的渲染大小为每个场合。图像只需要嵌入到PDF中一次,但可以"通过引用"多次使用/呈现(低效构建的Pdf可能仍然多次包含相同的图像,但这是一个不同的话题。..)
现在让我们弄清楚这些问题,这些问题可能会从各自的专栏标题中出现。他们是什么意思?
page
- 包含图像的PDF中的页码。
num
- 当前房源的图片编号。
type
- 的图像类型。可能的值是:
image
(不透明图像),mask
(单色图像掩模),smask
(软掩模图像)及stencil
(用于绘制颜色或图案的单色掩模图像)。 注: 图像的pdf透明度是通过使用两个单独的PDF对象创建的:一个用于图像,一个用于掩模或掩模。属于透明图像的掩模/掩模总是直接跟随列表中的图像。
width
- 以像素为单位的图像宽度。
height
- 以像素为单位的图像高度。
color
- 的图像色彩空间。可能的值是
gray
,rgb
,cmyk
,lab
(L*a*b),icc
(基于ICC),index
(索引颜色),sep
(分离)及devn
(DeviceN)。
comp
- 图像所使用的颜色分量的数量。
bpc
- 该 每个颜色分量的位数 图像所使用。
enc
- 该 编码 (压缩)所使用的图像。可能的值是:
image
(光栅图像-可以在内部使用通用/Flate
或/LZW
压缩,但不是一个特殊的图像编码),jpeg
(JPEG压缩),jpx
(JPEG2000压缩),jbig2
(JBIG2压缩)和ccitt
(传真压缩)。
interp
- 是
yes
如果在放大图像时请求插值。
object ID
- 文件内的图像的PDF对象ID(带有"生成号")。
更新(2016年3月)
截至Poppler v0.25.0(2013年12月11日发布)及更高版本,命令 pdfimages -list
现在包括指示自动计算的新列 x-ppi
(水平)及 y-ppi
(垂直)由PDF渲染器在PDF页面中显示的每个嵌入图像的分辨率。
此外,每个图像使用的大小(以字节/千字节为单位)(未压缩时)以及其大小压缩比(如嵌入在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
- 图像在PDF页面上呈现时的水平分辨率(以每英寸像素为单位)。
y-ppi
- 图像在PDF页面上呈现时的垂直分辨率(以每英寸像素为单位)。
size
- PDF文件中嵌入图像的大小。以下后缀正在使用中:'B'字节,'K'千字节,'M'兆字节和'G'千兆字节。
ratio
- 嵌入图像的压缩比。
其他提示
答案是肯定的。DPI在每个嵌入图像中独立。
只是一些DTP程序的常用技术,以将所有图像的DPI重新计算到上限(如果之前的DPI较低,则它停留)。但这是可选的。和顺便说一句,您也可以将(未拆卸)PDF嵌入(未拆卸);在这个阶段,你丢失了你可以制作的所有假设。
使用do运算符绘制图像。传递给此运算符的操作数是图像的名称。在当前页面的资源字典中查找图像名称。图像资源具有宽度(像素列数)和高度(像素行数)。在PDF页面上显示图像的图像的物理宽度和高度由DO操作员时的CTM(电流变换矩阵)的值确定。如果CTM将等于身份矩阵,则物理宽度和高度为1 PT高,1 PT宽。 (1 pt等于1/72英寸)。通常,CTM具有不同一性值,使1x1 PT方形变为较大的图像。像素行数的组合和像素列的数量和图像的物理延伸确定图像的分辨率,因为它出现在PDF页面上。
示例:图像资源由300像素行组成。每行由400像素组成。 CTM等于[400 0 0 300 100,100]。图像高度为300分,图像宽度为400分。所以分辨率在两个方向上都是72个dpi。
简而言之:PDF规范允许PDF包含各种分辨率的图像。