Imagick 是一个原生 php 扩展,用于使用 ImageMagick API 创建和修改图像。所以不会重试任何 PDF 的信息,而是图像的信息:
Imagick::getNumberImages — 返回 图像 在
对象。
$pdf->getNumberOfPages(); //返回等于 PDF 页数的图像数。这是pdf-to-image包中的一种方法。
PDF 描述了一个或多个页面的内容和外观。它还包含这些页面的物理大小的定义。页面大小的定义并不像您想象的那么简单。实际上,在 PDF 中最多可以有 5 个与其页面大小相关的不同定义。这些称为边界框或页面框。
MediaBox 用于指定页面的宽度和高度。对于普通用户来说,这可能等于实际的页面大小。
PDF 中的每个页面对于不同的页面框可以有不同的大小。
PDF 总是有一个 MediaBox 定义。所有其他页面框不一定必须出现在常规 PDF 文件中。
MediaBox 是 PDF 中最大的页面框。其他页面框可以等于 MediaBox 的大小,但它们不会更大(后者在 PDF/X-4 要求中明确要求)。如果它们更大,PDF 查看器将使用 MediaBox 的值。
您应该能够检索到准确的“HiResBoundingBox”值(即 PDF 中的 MediaBox 值)。
测试文件为 A4 (210mm x 297mm),595.28pt x 841.89pt,有四 (4) 页。
这些值的单位是 PostScript 点(其中 72 pt == 1 英寸)。
$pdf = "1.pdf";
$output = shell_exec("identify -format \"%[pdf:HiResBoundingBox]\" $pdf");
echo $output;
打印这个字符串:
595.28x841.89+0+0595.28x841.89+0+0595.28x841.89+0+0595.28x841.89+0+0
使用一些 REGEX,您可以获得每页的宽度:595.28pt 和高度:841.89pt,并将它们转换为毫米。