我使用Imagick PHP创建了PDF文件的缩略图创建脚本。
它会创建PDF文件第一页的缩略图。
我能够生成缩略图,没有任何固定高度和宽度的问题
我必须得到PDF文件第一页的高度和宽度,并且必须相应地计算缩略图的高度和宽度。
如果我必须从图像创建缩略图,我可以在PHP中使用getimagesize函数,但是有没有这样的函数来获取PDF文件第一页的高度和宽度?
答案 0 :(得分:4)
您可以通过将[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]
但是,请注意以下事实:
identify
仅返回MediaBox值,它不支持其他Box。 convert
将使用PDF页面的(可能更大的)MediaBox大小来渲染图像(因此其结果看起来与您在PDF查看器中看到的看起来不同)。pdfinfo -box -f 1 -l 1 some.pdf | grep -E '(Box:|rot:|size:)'
。 (如果可能,请使用 Poppler 版本的pdfinfo
。)