2016-07-21 2 views
0

Я использовал Imagick для создания больших пальцев в формате JPEG со страниц PDF-документа. Мой локальный сервер для теста никогда не сможет этого сделать, у меня всегда была ошибка Ghostscript. Я развивался непосредственно на своем веб-сайте, но теперь он перестает работать, похоже, с версии 6.9.0 ImageMagick. Поскольку это общедоступный хостинг, я не могу сделать нисходящий рейтинг, и администраторы не хотят этого делать (это будет donwngrade для всех на том же сервере). Это простой дешевый план хостинга, я не думаю, что они хотят мне помочь ...Как получить изображение JPEG из PDF с помощью другой php-библиотеки, чем Imagick?

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

Итак, я начал искать альтернативу внутри библиотек PHP или некоторый API, который я могу установить для выполнения задания. Какие-либо предложения?

Это линия, которая генерирует ошибку:

$Img->readImage($urlArq."[".$pag."]"); 

Ошибка:

Fatal error: Uncaught exception 'ImagickException' with message 'PDFDelegateFailed `[ghostscript library] -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r150x150" -dFirstPage=1 -dLastPage=1 "-sOutputFile=/tmp/magick-316787_tM5qhaBA3E%d" "-f/tmp/magick-316787MBoQDwPMLvz" "-f/tmp/magick-31678SNvHB_Zdq8Xt"': -dname= must be followed by a valid token @ error/pdf.c/InvokePDFDelegate/263' in /home/sintrano/public_html/conteudo_apitaco_jpeg.php:23 Stack trace: #0 /home/sintrano/public_html/conteudo_apitaco_jpeg.php(23): Imagick->readimage('apitaco/edicao-...') #1 {main} thrown in /home/sintrano/public_html/conteudo_apitaco_jpeg.php on line 23 

информацию о версии:

versionNumber: 1680 
versionString: ImageMagick 6.9.0-0 Q16 x86_64 2016-05-05 http://www.imagemagick.org 

EDIT: Я нашел ошибку в своем коде : $ pag не может быть нулевым, первая страница равна 1. Но это не создавало ошибку раньше, не знаю почему, и я не уверен, проблема.

+0

Ошибка при использовании Ghostscript se ems, чтобы быть проблемой с версией ImageMagick, которую вы установили, см. этот вопрос: http://stackoverflow.com/questions/38272126/error-trying-to-create-a-jpeg-thumb-image-of-a- pdf-using-imagick-on-godaddy-serv – KenS

+0

В моих тестах Ghostscript не принимает ноль в качестве первой страницы PDF-документа, который должен быть «1» (я ответил на этот вопрос, который вы упомянули). Поскольку мой код был старым, я предполагаю, что старые версии Ghostscript do или Imagick делали простую коррекцию (0 = 1) перед вызовом библиотеки. – Gustavo

ответ

1

если вы выделенный сервер или VPS Вы можете использовать convert sudo apt-get install convert , а затем convert infile.pdf outfile.png там много вещей, которые вы можете сделать, прежде чем экспорт в JPG/PNG convert man page

вы можете использовать execexec функцию от php до запуска конвертировать, а затем получить ваши файлы по file_get_contentsfile_get_contents и readdirreaddir

+0

Я не администратор, я использую общедоступный хостинг (небольшой веб-сайт). Я не думаю, что мне будет позволено идти дальше в командной строке. Однако, возможно, я могу получить что-то функцией exec, возможно, в списке для проверки ghostscript напрямую ... – Gustavo

+0

Я положил +1 на этот ответ, потому что я мог избежать проблемы, создав свой собственный временный файл jpeg из pdf, вызвав ghostscript по командной строке используя exec. Поэтому я могу сделать, чтобы перечислить часть работы за пределами. Но я буду держать этот вопрос открытым, потому что я думаю, что интересно изучить другие способы работы с Imagick. Также см. Важный Редактор выше. – Gustavo

+0

Ну, так как noelse попробуйте другой ответ, я буду отмечать это правильно, потому что это правильно. Но exec немного сложнее для noobs (как я). В моем случае я использовал ghostscript (gs command line) для создания временного файла jpeg, который может быть загружен функцией php imagecreatefromjpeg, и работал с библиотекой GD, полностью избегая ImageMagick Imagick. – Gustavo

Смежные вопросы