当前位置: 首页 > 知识库问答 >
问题:

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

宋经赋
2023-03-14

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

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

我能够生产的缩略图没有任何问题与固定的高度和宽度

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

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

共有1个答案

子车修平
2023-03-14

您可以访问ImageMagick可以读取的任何多页文件格式的第一页,方法是在文件名后附加[0]

这意味着,您可以要求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还支持可选的TrimBox、CropBox、ArtBox和BleedBox设置。
  2. 其中最重要的是TrimBox,因为:
  3. TrimBox是否与MediaBox不同(需要相同或更小,不允许更大!)则要求PDF查看器和打印机驱动程序只呈现该框内的页面部分。
  4. idential将只返回MediaBox值,它不支持其他框。
  5. 同样,convert将使用PDF页面的MediaBox大小(可能更大)来呈现图像(因此其结果看起来与您在PDF查看器中看到的不同)。
  6. 幸运的是,TrimBox值与MediaBox值有很大不同的PDF并不常见。
  7. 如果需要访问所有框的值设置,则应使用不同的命令实用工具提取相关信息:pdfinfo-box-f 1-l 1 some.pdf grep-e'(box:rot:size:)'。(如果可能,请使用pdfinfo的Poppler版本...)
 类似资料:
  • 本文向大家介绍使用Tkinter Python获取屏幕的高度和宽度,包括了使用Tkinter Python获取屏幕的高度和宽度的使用技巧和注意事项,需要的朋友参考一下 Tkinter是为Python程序提供GUI编程功能的库。作为GUI创建的一部分,我们需要创建不同大小和深度的屏幕布局。在此程序中,我们将看到如何以像素和毫米为单位计算屏幕尺寸。我们还可以获得以像素为单位的屏幕深度。作为Tkinte

  • 问题内容: 除了使用ImageIO.read来获取图像的高度和宽度外,还有其他方法吗? 因为我遇到了锁定线程的问题。 此错误仅在Sun应用服务器上发生,因此我怀疑这是Sun错误。 问题答案: 这很简单方便。

  • 问题内容: 在使用jQuery或JavaScript上传到我的网站之前,如何获取文件大小,图像高度和宽度? 问题答案: 使用 HTML5和 File API 使用URL API的示例 图片来源将是代表Blob对象的URL 使用FileReader API的示例 如果您需要图像源作为长Base64编码的数据字符串

  • 如何使用jQuery或JavaScript在上传到我的网站之前获取文件大小、图像高度和宽度?

  • 因此,我创建了一个简单的模拟,其中方块是随机产生的,随机向量和窗口边缘的反弹。 我希望它能考虑到正在调整的窗口大小。因此,如果我将窗口的尺寸从600x600改为1200x600,则新边框的方块将会弹出,而不是600x600。 我尝试执行getWidth()getHeight(),但它将返回0。因此,我将它放在pain()(因为它在window resize中被调用)方法中,并将返回值保存为局部变量

  • 我是JavaFX的新手,我正在编写一个简单的登录应用程序,我想在我的web浏览器中启动它。 我如何获得web浏览器的宽度和高度?是否有一些对象用于此目的,或一个方法,我希望能够调整应用程序的大小,每当浏览器的大小改变。