PHP ImageMagick - readimage不适用于某些pdf

时间:2015-06-12 21:04:49

标签: php pdf imagemagick imagick

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

以下是当前代码:

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

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

感谢。

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

1 个答案:

答案 0 :(得分:1)

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

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

如果它仍然不起作用,你可以清洁"使用gs的PDF。像这样:

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