ImageMagick / Imagick конвертирует PDF в JPG с использованием собственного PHP API

Я пытаюсь преобразовать файлы PDF в PNG. Он отлично работает с командной строкой (у меня установлен GhostScript 8.64). Но из PHP у меня проблема:

код:

$im = new Imagick($pdf_file); // this is where it throws the exception below 

вывод:

 Fatal error: Uncaught exception 'ImagickException' with message 'Postscript delegate failed `23_1235606503.pdf': No such file or directory @ pdf.c/ReadPDFImage/612′ in get_thumbnail.php:93 Stack trace: \#0 get_thumbnail.php(93): Imagick->__construct('…') 

и т.д.

Я не уверен, что я делаю неправильно здесь, но я подозреваю, что это что-то связано с моей конфигурацией сервера где-то. Я запускаю: Apache 2.2.11 PHP 5.2.8 ImageMagick 6.4.8-9 GhostScript 8.64

Solutions Collecting From Web of "ImageMagick / Imagick конвертирует PDF в JPG с использованием собственного PHP API"

Наконец понял это. Исполняемый файл GhostScript ( gs ) не был в окружении среды Apache. Это было в /usr/local/bin . Хотя я попытался несколько способов добавить /usr/local/bin в путь, мне это не удалось. Я закончил размещение символической ссылки для gs в /usr/bin directory . Теперь все работает отлично.

У меня нет «репутации» на Stackoverflow, чтобы добавить комментарий в строку выше, но есть дополнительный шаг, который мне пришлось выполнить, чтобы заставить это работать на моем Mac с последним обновлением Sierra.

Когда вы вводите команду:

 sudo ln -s /usr/local/bin/gs /usr/bin/gs 

На Mac вы можете получить сообщение об ошибке «Операция без разрешения».

Очевидно, Apple внесла изменения, что каталог «bin» не редактируется, если вы не отключите SIP (System Integrity Protection).

Итак, вот шаги для этого:

  1. Перезагрузите Mac в режим Recorvery, перезагрузив компьютер и удерживая «Command + R», пока на экране не появится логотип Apple.
  2. Нажмите «Утилиты»>
  3. В окне терминала введите crutil disable и нажмите «Enter»
  4. Перезагрузите Mac.

Я просто прошел эти шаги, и теперь мой Ghostscript отлично работает, и я успешно конвертировал PDF в JPG.

Я успешно это делаю. Вот код, который я использую для преобразования. Мы используем это решение коммерчески. Я знаю, что этот вопрос существует некоторое время, но он все равно может помочь вам.

 //Convert PDF contract to image using ImageMagik and Ghostscript // NOTE: This will need to be change if running on Linux $source = $appDir."\\".$clientID."\\".$clientID.".pdf"; $dest = $appDir."\\".$clientID."\\".$clientID.".jpg"; //print("c:\\IM\\convert.exe $source $dest "); exec("c:\\IM\\convert.exe $source $dest ");