foo.png
我有一张1240 * 1754 像素的图像。
使用 OS X 上的 imagemagick,我将其转换为 .pdf 并将分辨率指定为每英寸 150 点,因此它的物理格式将正好是 A4 纸:
convert -units PixelsPerInch -density 150 foo.png bar.pdf
但是,如果我现在检查生成文件的分辨率:
identify -verbosy bar.pdf | grep Resolution
它说:
Resolution: 72x72
注意:图像应该不是可以缩放或调整大小或做其他任何事情。它是 1240 * 1754,应该保持这种状态。我只想确保 PDF 恰好覆盖一整张 A4 纸,这就是这些像素尺寸为 150 dpi 的情况。
我如何确保生成的 .pdf 文件具有正确的分辨率?
(编辑)仔细想想,我意识到也许 PDF 文档(即使只有一页)不一定具有一个整体的每英寸点数或分辨率设置。
在这种情况下,我用一张图片创建 PDF,但一般来说,PDF 可以包含许多元素,可能所有元素的分辨率都不同。
所以我想知道,也许我的方法只是为这张图片设置了 dpi,但是Resolution
报告的却identify -verbose bar.pdf
是完全不同的东西?
答案1
从图像转换为 pdf 时,降低密度提高分辨率。
convert -units PixelsPerInch -density 72 foo.png bar.pdf
另一方面,当从 pdf 转换为打印质量图像时,密度应该很高。
convert -units PixelsPerInch -density 600 bar.pdf foo.png
但我找不到这方面任何文档。
(这是一个老问题。希望它能帮助那些仍在寻找答案的人。)
答案2
尝试这个:
convert foo.png -page A4 bar.pdf
答案3
PDF 的原始默认分辨率是每英寸 72 点,因此每点一个点的 1" x 1" 图像可以说是 72 dpi,但这并不是在按比例缩放到 1" 正方形的位置上计算其宽 72 x 高 72 像素的方式。
因此,原件宽度为 1240,高度为 1754,应用于 210 毫米 x 297 毫米,因此水平方向每毫米大约有 6.095 个点,垂直方向每毫米大约有 5.905 个点(这不是一个非常有用的描述)。
目标是 A4 比例,所需密度为每英寸 150 点,按照 PDF 术语来说,图像宽度为 1,240.157 点,高度为 1,753.937 点,真实比例为每英寸 72 点。
我们不能有子像素,所以它四舍五入为 1240 x 1754 @ 72 x 72 ptpi 因此也不是一个合理的描述,但却是准确的
如果我们添加@150 pxpi(作为标称像素密度),这将更加合理,并且 PDF 中的大多数图像将使用 hdpi 和 vdpi 或 x-ppi y-ppi 中的单位,例如
--0000.ppm: page=1 width=1800 height=682 hdpi=599.67 vdpi=599.12 colorspace=DeviceRGB bpc=8
--0001.ppm: page=3 width=1834 height=665 hdpi=345.93 vdpi=345.75 colorspace=DeviceRGB bpc=8
或者
>pdfimages -list tt.pdf
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
1 0 image 950 575 gray 1 8 image no 27 0 72 72 42.4K 7.9%
1 1 image 950 575 index 1 8 image no 19 0 72 72 2454B 0.4%