Imagick无法读取PDF文件

3

我正在使用Imagick尝试将PDF转换为PNG,但失败了。我的错误日志显示“无法读取文件”。

Php info

示例代码:

$fileone =  $_SERVER['DOCUMENT_ROOT'] . '/' . 'test.pdf';
$image = new Imagick($fileone);
$image->readImage($fileone);
$image->thumbnailImage(300, 0);
echo '<img src="data:image/png;base64,' .  base64_encode($image->getimageblob())  . '" />';

思考?

我假设你已经安装了 ghostscript - Mark Setchell
是的,我重新安装并重置了服务器,只是为了保险起见。 - Jeremy
@Jeremy,你解决了你的问题吗?我也有同样的问题。 - o139
@oleg 是的,我的解决方案是完全绕过Imagick处理PDF,而是使用Ghostscript。 - Jeremy
2个回答

5
你需要安装 Ghostscript。
sudo apt-get install ghostscript

2

我建议先使用 realpath() 函数来检查文件路径,然后再判断文件是否可读。

$fileone = realpath('test.pdf');

if (!is_readable($fileone)) {
    echo 'file not readable';
}

如果是多页PDF,请尝试以下方法。
$image = new Imagick($fileone.'[0]');

你是在本地运行这个脚本,比如通过 MAMP 这样的工具,还是在服务器上运行? - Adam Lynch
1
是的,它是通过MAMP传输的。将PNG或JPEG转换工作正常,但与PDF有些问题。 - Jeremy
也许尝试手动重新安装imagick https://github.com/delphian/drupal-convert-file/wiki/Installing-ImageMagick-on-Mac-OSX-for-PHP-and-MAMP - Adam Lynch
是的,我尝试过了。但它没有起作用。还有其他可能出错的地方吗? - Jeremy
1
如果这是一个多页PDF文件,也可以尝试使用$image = new Imagick($fileone.'[0]'); - Adam Lynch

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