当前位置:  开发笔记 > 编程语言 > 正文

如何在PHP中将PDF文档转换为预览图像?

如何解决《如何在PHP中将PDF文档转换为预览图像?》经验,为你挑选了6个好方法。

将PDF文档的一部分呈现给图像文件需要哪些库,扩展等?

我找到的大多数PHP PDF库都围绕创建PDF文档,但是有一种简单的方法可以将文档呈现为适合Web使用的图像格式吗?

我们的环境是LAMP堆栈.



1> Paolo Bergan..:

你需要ImageMagickGhostScript

setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>

[0]手段page 1.


是的,它有效.你也可以这样做:$ im-> setResolution(300,300),例如在需要的分辨率下渲染你的pdf.
我还没有尝试过,但是如果你使用谷歌文档,并且不介意iFrame,这个建议可能会起作用(它也是一个wp插件)https://forrst.com/posts/PDF_thumbnails_with_Google_Docs-6G6
但如何在php文件中包含ImageMagick和GhostScript

2> Andrew..:

对于那些因任何原因没有ImageMagick的人来说,GD功能也可以与GhostScript一起使用.运行ghostscript命令exec()以将PDF转换为JPG,并使用以下操作生成的文件imagecreatefromjpeg().

运行ghostscript命令:

exec('gs -dSAFER -dBATCH -sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r300 -sOutputFile=whatever.jpg input.pdf')

要进行操作,请创建新的占位符图像$newimage = imagecreatetruecolor(...),然后引入当前图像.$image = imagecreatefromjpeg('whatever.jpg'),然后您可以使用imagecopyresampled()更改大小或任何数量的其他内置非imagemagick命令


要获取第一页的图像,请将开关-dFirstPage = 1 -dLastPage = 1添加到命令中.

3> Jason..:

您还可以使用获取页数

$im->getNumberImages();

然后你可以使用循环创建所有页面的拇指,例如.

'file.pdf['.$x.']'


(这实际上应该是Paolo Bergantino答案的评论)

4> Sebastian..:

使用php扩展名Imagick.要控制光栅输出图像的所需大小,请使用setResolution函数

setResolution(300, 300);     //set the resolution of the resulting jpg
$im->readImage('file.pdf[0]');    //[0] for the first page
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>

(Paolo Bergantino的答案和Luis Melgratti的评论.你需要在加载图像之前设置分辨率.)



5> jrjohnson..:

如果您从blob加载PDF,这就是您获取第一页而不是最后一页的方式:

$im->readimageblob($blob);
$im->setiteratorindex(0);


(这实际上应该是Paolo Bergantino答案的评论)

6> Preet Sandhu..:

您还可以尝试执行imagemagick附带的'convert'实用程序.

exec("convert pdf_doc.pdf image.jpg");
echo 'image-0.jpg';


而不是pdf_doc.pdf,pdf_doc.pdf [0]是首选.
推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有