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);
我目前正在尝试 运行 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);