Imagick NoDecodeDelegateForThisImageFormat `PDF '@ error / constitute.c / ReadImage / 509 при чтении PDF в WAMP - PullRequest
0 голосов
/ 19 марта 2020

Я установил Imagick 3.4.4 в своем WAMP, используя шаги, определенные здесь: https://newsinfo-blog.blogspot.com/2015/03/install-imagick-on-wamp-server.html

Затем я использую следующий код для преобразования PDF в изображение JPEG:

    $im = new Imagick();

    $im->setResolution(300,300);
    $im->readImage($_SERVER['DOCUMENT_ROOT'] . '/codeigniter/assets/lofthouse.pdf[0]');
    $im->setImageFormat('jpeg');
    $im->writeImage('thumblofthouse.jpg');
    $im->clear();
    $im->destroy();

Но я получаю следующее сообщение об ошибке:

Произошла неизвестная ошибка Тип: ImagickException

Сообщение: NoDecodeDelegateForThisImageFormat `PDF '@ error / construct .c / ReadImage / 509

Что я делаю не так? Как я могу сохранить первую страницу PDF как изображение?

Я заметил, что когда я пытаюсь:

print_r(Imagick::queryFormats());

, в результате получается пустой массив.

РЕДАКТИРОВАТЬ:

Это шаги, которые я предпринял до сих пор:

  1. Скачал ImageMagick https://imagemagick.org/script/download.php#windows и установил его через установщик , поместите его в мою папку D: \ software.
  2. Скачал и установил Ghostscript: https://www.ghostscript.com/download/gsdnld.html, поместил его в папку D: \ и поставил галочку для генерации шрифтов.
  3. Скопировал файл php_imagick.dll в мою / ext / папку
  4. Скопировал все файлы CORE_RL_ * в apache / bin / folder
  5. Добавлен путь root в каталог установки ImageMagick в моих переменных PATH (и поместил его выше строки PHP)

EDIT2: я также сделал следующие шаги, хотя я определенно не уверен, что они необходимы

  • Создана новая системная переменная с именем MAGICK_HOME и она указывает на каталог imagemagick root.
  • изменил политику. xml в ImageMagick, добавив <policy domain="module" pattern="{PS,PDF,XPS}" rights="read|write"/> в атрибут policymap.

Вот что возвращает phpinfo ():

imagick module  enabled
imagick module version  3.4.4
imagick classes Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version   ImageMagick 7.0.7-11 Q16 x86 2017-11-23 http://www.imagemagick.org
Imagick using ImageMagick library version   ImageMagick 7.0.7-11 Q16 x86 2017-11-23 http://www.imagemagick.org
ImageMagick copyright   Copyright (C) 1999-2015 ImageMagick Studio LLC
ImageMagick release date    2017-11-23
ImageMagick number of supported formats:    0

EDIT3: я могу конвертировать PDF в JPG через командную строку, используя ImageMagick. После всех вышеперечисленных шагов я получаю следующую ошибку:

Type: ImagickException

Message: no decode delegate for this image format `PDF' @ error/constitute.c/ReadImage/509
...