gpt4 book ai didi

php - 使用PHP获取PDF文件的高度和宽度

转载 作者:行者123 更新时间:2023-12-02 17:48:02 27 4
gpt4 key购买 nike

我有一个使用 Imagick PHP 的 PDF 文件的缩略图创建脚本。

它将创建 PDF 文件第一页的缩略图。

我能够在固定高度和宽度的情况下毫无问题地生成缩略图

我必须获取 PDF 文件第一页的高度和宽度,并且必须相应地计算缩略图的高度和宽度。

如果我必须从图像创建缩略图,我可以在 PHP 中使用 getimagesize 函数,但是是否有类似的函数来获取 PDF 文件第一页的高度和宽度?

最佳答案

您可以通过将 [0] 附加到文件名来访问 ImageMagick 可以读取的任何多页文件格式的第一页。

这意味着,您可以要求 identify 使用此命令打印出 PDF 第一页的宽度和高度,将其转换为 PHP 语法应该没有问题

 identify  -format "width: %W  --  height: %H\n"  some.pdf[0]

这将以下列格式打印第一页 MediaBox 的值:

  width: 345  --  height: 777

这些值的单位是 PostScript 点(其中 72 pt == 1 inch)。当然,您可以自由修改命令以满足您的需要,例如只给出 2 个数值,或使用 WxH 格式:

 identify  -format "%W %H\n"  some.pdf[0]
identify -format "%Wx%H\n" some.pdf[0]

但是,请注意以下事实:

  1. PDF 还支持可选的 TrimBoxCropBoxArtBoxBleedBox 设置。
  2. 其中最重要的是 TrimBox,因为:
  3. 如果 TrimBoxMediaBox 不同(它必须相同或更小并且不允许更大!)那么 PDF 查看器和打印机驱动程序被要求仅呈现该框内的页面部分。
  4. identify 将只返回 MediaBox 值,它不支持其他 Boxes。
  5. 同样,convert 将使用 PDF 页面的(可能更大)MediaBox 大小来呈现图像(因此其结果看起来与您在 PDF 查看器中看到的不同)。
  6. 幸运的是,TrimBox 值与 MediaBox 值差异很大的 PDF 并不常见。
  7. 如果您需要访问所有 Box 的值设置,您应该使用不同的命令实用程序来提取相关信息:pdfinfo -box -f 1 -l 1 some.pdf | grep -E '(Box:|rot:|size:)'. (如果可能,请使用 pdfinfoPoppler 版本...)

关于php - 使用PHP获取PDF文件的高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127992/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com