Не могу прочитать PDF-файл с Imagemagick - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь преобразовать PDF-файл в PNG. Он работает в командной строке, но не работает через php-код. Я попробовал этот пример кода с php.net:

<?php 
  $imagick = new Imagick(); 
  $imagick->readImage('myfile.pdf'); 
  $imagick->writeImages('converted.jpg', false); 
?>   

Когда я использую относительный путь, он выдает следующую ошибку:

Неустранимая ошибка: необработанное исключение «ImagickException» с сообщением 'UnableToOpenBlob' myfile.pdf ': нет такого файла или каталога @ error / blob.c / OpenBlob / 2702 'in C: \ xampp \ htdocs \ portalgoogle \ views \ ticket.php: 4 Трассировка стека: # 0 C: \ XAMPP \ HTDOCS \ portalgoogle \ Views \ ticket.php (4): Imagick-> readimage ('etiqueta.pdf') # 1 {main} добавлено C: \ xampp \ htdocs \ portalgoogle \ views \ ticket.php в строке 4

Когда я использую полный путь, он просто приводит к фатальной ошибке в строке readImage. Может кто-нибудь показать мне, что мне нужно сделать или предложить более простой способ конвертировать pdf в png? Я пробовал pdf.js, но он не работал на Chrome.

1 Ответ

0 голосов
/ 27 июня 2018

Это типично для Imagick с файлами PDF. PHP не использует те же переменные ENV, что и ОС, в которую Imagemagick их получает.

Библиотека Ghostscript, используемая в файле Delegma.xml Imagemagick, должна быть изменена, чтобы заменить gs на full path to gs, где говорится: command="&quot;gs&quot;

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

Аналогично в других строках, которые используют gs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...