PHP Imagick - Сбой делегата Postscript: нет такого файла или каталога - PullRequest
0 голосов
/ 14 ноября 2018

У меня проблема с imagick for PHP.

Моя среда:

  • Ubuntu 14.04
  • PHP 5.5.9 (1ubuntu4.26)
    • с установленным imagick через pecl
  • 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 в /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:

Я сейчас попробовал «обходной путь» - вместо указания номера страницы в квадратных скобках, я использую $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')

Что я делаю сейчас неправильно?

1 Ответ

0 голосов
/ 03 декабря 2018

Моя ошибка была в том, что на сервере отсутствовала установка tesseract ... возможно, это кому-нибудь поможет.

...