PHP Imagick - Postscript 委托失败:没有这样的文件或目录

PHP Imagick - Postscript delegate failed: No such file or directory

我对 PHP 的 imagick 有疑问。

我的环境:

显示 phpinfo() 告诉我一切正常 - imagemagick 被识别并且 pdf 以支持的格式列出。

在 PHP 中,我做了以下内容:

//$pdfAbsolutePath is /path/to/MF-NEU-22306.pdf[0]
$im = new \Imagick($pdfAbsolutePath);

此时我得到以下错误:

Postscript delegate failed `/path/to/MF-NEU-22306.pdf': No such file or directory @ error/pdf.c/ReadPDFImage/677
[app/controller/web/fax.php:1028] Imagick->readimage('/path/to/MF-NEU-22306.pdf[0]')

文件存在于指定路径。

我做错了什么?从命令行手动调用 convert 运行完美,与从命令行调用 运行 gs 相同。在 phpinfo() 的输出中,为 imagick 编译的版本和 ImageMagick 库提供的版本相同。我还尝试完全卸载 ImageMagick 和 ghostscript 并重新安装它 - 从 apt-get 和从源代码编译,但没有任何效果。

我该如何解决这个问题?感谢您的帮助。

编辑:

delegates.xml/etc/ImageMagick/ 中有两行 pdf 代表:

<delegate decode="pdf" encode="eps" mode="bi" command="&quot;gs&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=nodevice&quot; &quot;-sOutputFile=%o&quot; &quot;-f%i&quot;"/>
<delegate decode="pdf" encode="ps" mode="bi" command="&quot;gs&quot; -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=nodevice&quot; &quot;-sOutputFile=%o&quot; &quot;-f%i&quot;"/>

编辑 2:

我现在尝试 "workaround" - 不是在方括号中指定页码,而是在遍历页面时使用 $im->setIteratorIndex($i)。到目前为止它有效,但现在我有一个例外:

WriteBlob Failed `/path/to/1-607405443.png' @ error/png.c/MagickPNGErrorHandler/1726
[app/controller/web/fax.php:1044] Imagick->writeimage('/path/to/1-607405443.png')

我现在做错了什么?

我的错误是服务器上缺少 tesseract 安装...也许这会对某些人有所帮助。