如何使用Imagemagick PHP API将.pdf文件转换为.png?

6
我想使用Imagemagick PHP API将.pdf文件转换为.png文件。
我们可以使用以下命令在shell中执行此操作: $convert sample.pdf sample_image.png
我们可以使用php的exec()函数发出此命令,但由于某些原因(安全性),我禁用了使用php执行shell命令的功能。
所以现在告诉我解决方案,如何在不使用php的exec()函数的情况下将我的.pdf文件转换为.png文件?
这里有另一个关于此问题的讨论here,但不是很清楚。
2个回答

21

你必须安装 php5-imagick。

$myurl = 'filename.pdf['.$pagenumber.']';
$image = new Imagick($myurl);
$image->setResolution( 300, 300 );
$image->setImageFormat( "png" );
$image->writeImage('newfilename.png');

这对我来说很有效,但在writeImage中会抛出异常。header("Content-type image/png"); echo $image; 可以解决这个问题。 - Jeff Hines
我已经不知道该怎么办了。ImageMagick 6.8.8-9 已经安装,但是我从我的 PDF 中没有得到任何图像。如果我将 $myurl = 'filename.pdf['.$pagenumber.']' 更改为图像,则会按预期获得一个名为 $image->writeImage('newfilename.png'); 的新图像。但是我从我的 PDF 中什么也没有得到。也许有人知道出了什么问题。 - Yves
在读取图像之前,您需要设置分辨率。仅供参考。 - Nik
setResolution() 必须在文件读取之前使用,因此在Imagic初始化后按顺序使用readImage()获取文件。代码如下:$image = new Imagick(); $image->setResolution( 30, 30); $image->readImage($myurl); - Clain Dsilva

1
由于某些原因(安全性),我禁用了使用PHP执行shell命令的功能。您需要重新启用shell命令的执行,或安装ImageMagick PHP扩展。请参阅此处以了解如何安装它。

ImageMagick PHP扩展已经安装,但我需要一些简单的示例代码来解决我的问题,请用PHP代码示例进行说明。 - Peeyush

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接