【问题标题】:How to get DPI of a PDF file?如何获取 PDF 文件的 DPI?
【发布时间】:2018-10-05 00:22:15
【问题描述】:

使用 ImageMagick 或 GhostScript 或任何 PHP 代码如何获取 PDF 文件的 DPI 值? 这是两个演示文件的链接

我用过

$image = new Imagick();
$image->readImage('xyz.pdf');
$resolutions = $image->getImageResolution();

对于具有不同 DPI 的两个不同 PDF 文件,它给出相同的结果。

我也用过

pdfimages -list xyz.pdf

它提供了所有信息的列表,但如何从列表中获取 DPI 值。

如何获取 PDF 的准确 DPI 值?

【问题讨论】:

  • PDF 文件没有密度。阅读时必须为其分配密度。它只有以英寸为单位的物理打印尺寸。它使用默认密度 72 dpi 或您指定的任何密度渲染到某些像素尺寸。您的命令可能会为两个图像提供 72 dpi,因为这是假定的默认值。如果您在阅读 PDF 之前设置了密度,那么它将显示该密度,并且还会根据 PDF 的实际打印尺寸显示不同的像素尺寸

标签: pdf imagemagick ghostscript dpi


【解决方案1】:

正如 fmw42 所说,PDF 文件本身没有分辨率。但是,在您的情况下,这两个文件都只包含一个图像。在一种情况下,图像约为 48 MB,而在另一种情况下,图像约为 200 MB。

原因是图像具有不同的有效分辨率。

在 PDF 中,图像只是一个位图,即一系列彩色像素。然后将它们绘制到底层媒体上。此时没有分辨率,像素被放置在特定的媒体尺寸中。在您的情况下为 22 英寸 x 82 英寸。

有效分辨率是通过将维度除以该维度中图像中的像素数得出的。

所以如果我有一个 1000x1000 像素的图像,并且我将它绘制在一个 1 英寸的正方形中,那么图像的有效分辨率是 1000 dpi。如果我改变主意并将其绘制成 4 英寸 x 4 英寸的正方形,则有效分辨率为 250 dpi。

图像没有改变,只是它覆盖的区域。

现在考虑我在 1 英寸的正方形中绘制了两个图像。第一个图像是 1000x1000,第二个是 500x500。第一张的有效分辨率为1000dpi,第二张的有效分辨率为500dpi。

因此您可以看到,在 PDF 中,图像的有效分辨率是图像尺寸和它所覆盖的媒体尺寸的组合。

这在 PDF 文件中是一件很难衡量的事情。覆盖的面积是使用矩阵代数计算的,可以是几个不同矩阵的组合。

相比之下,图像的实际尺寸很容易确定,它们在图像字典中给出。您的图像是:1620x5868 和 3372x12225。在这两种情况下,媒体大小相同; 22.5x81.5 英寸。

由于图像覆盖整个媒体,因此有效分辨率为;

1620/22.5 = 72 乘以 5868/81.5 = 72

3372/22.5 = 149.866 乘以 12225/81.5 = 150

我认为 MuPDF 会为您提供图像尺寸和媒体尺寸,假设您的所有 PDF 文件都是这样构建的,那么您可以简单地执行数学运算,但请注意,对于没有图像的普通 PDF 文件,这不会那么简单' t 覆盖整个媒体。

使用mutool info -I -M 150-dpi.pdf 给出:

正在从第 1-1 页检索信息...

媒体框 (1): 1(6 0 R):[0 0 1620 5868]

图片 (1): 1 (6 0 R): [ DCT ] 3375x12225 8bpc DevCMYK (12 0 R)

这就是您的图像尺寸和媒体尺寸。您需要做的就是将一个除以另一个。

注意:在 debian 和相关发行版中,mutool 包含在 mupdf-tools 包中,而不是 mupdf 包本身。因此,它可以由sudo apt install mupdf-tools 安装。

【讨论】:

  • 如果建议的命令不起作用,请尝试mutool info 150-dpi.pdf(即没有选项)。
【解决方案2】:

我使用 poppler 库中的 pdfimages -list,为您提供有关图像的所有信息。

【讨论】:

  • 你好,你能添加一个关于如何实现它的示例吗?对于未来的其他人来说,这将是非常有帮助的。
  • 请考虑发布示例。这是评论,而不是答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
相关资源
最近更新 更多