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

时间:2018-11-14 13:44:23

标签: php pdf imagemagick ghostscript imagick

我对imagick for PHP遇到问题。

我的环境:

  • Ubuntu 14.04
  • PHP 5.5.9(1ubuntu4.26)
    • 通过pecl安装了imagick
  • Apache 2.4.7
  • ImageMagick 6.7.7-10 2018-09-28 Q16
  • Ghostscript 9.25

显示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的{​​{1}}中是pdf委托的这两行:

/etc/ImageMagick/

编辑2:

我现在尝试了一种“变通方法”,即在方括号中指定页码,在遍历页面时使用<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;"/> 。到目前为止,它仍然有效,但是现在我有另一个例外:

$im->setIteratorIndex($i)

我现在在做什么错?

1 个答案:

答案 0 :(得分:0)

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