PHP ImageMagick - readimage 不适用于某些 pdf

PHP ImageMagick - readimage not working for certain pdfs

我目前正在尝试 运行 PDF 上的 readimage() 函数。

这是当前代码:

$image = new Imagick();
$image->readImage($file_to_read);
// etc...

事实是,大多数 PDF 使用此代码都可以正常工作。但是对于某些 PDF,PHP 只是在函数调用时挂起,不会抛出异常也不会导致致命错误。有人知道原因或解决方法吗?

谢谢。

edit:我只是 运行 $ gs -dNOPAUSE -sDEVICE=jpeg -r144 -sOutputFile=p%03d.jpg 8Jun2015.pdf 在非工作 pdf 上,它正确地将图像转换为 jpg。但是 readimage() 仍然对同一个文件不起作用。

原来我必须指定文件路径。以下代码有效。

putenv("PATH=/usr/local/bin:/usr/bin:/bin");
$im = new Imagick();
$im->readImage($file_to_read);

如果还是不行,您可以"clean" 使用 gs 生成 PDF。像这样:

$sh= shell_exec('/usr/local/bin/gs \
    -o /repaired_pdf/' .  $new_file_name . '\
    -sDEVICE=pdfwrite \
    -dPDFSETTINGS=/prepress \
    ' . $file_to_read);