Проблема с модулем imagick — PHP

#php #apache2 #imagemagick #suexec #suphp

#php #apache2 #imagemagick #suexec #suphp

Вопрос:

У меня странная ошибка в php-модуле image magick.

ImagickException [ 1 ]: Postscript delegate failed '/tmp/magick-XXxIARsr': wd7C.cache @ error/pdf.c/ReadPDFImage/638

Судя по всему, это проблема с авторизацией.

У меня есть suphp и suexec в apache. Я думаю, что есть проблема с путем кеширования. но я изменил его в configure.xml файле, и путь все тот же.

У вас есть какие-нибудь идеи?

Комментарии:

1. Похоже, что файл PDF может быть поврежден. Вы получаете ту же ошибку при чтении других файлов?

2. Чего именно вы пытаетесь достичь с помощью PHP? Затем попробуйте создать соответствующую командную строку для делегата PostScript (которым, вероятно, является Ghostscript) и запустите его непосредственно с тем же входным файлом. Просто чтобы проверить, не связано ли реальное с ошибочным файлом ввода или с ошибкой в версии вашего делегата PostScript…

3. я пытаюсь извлечь страницы PDF для создания изображений png, вот код : $images = new Imagick($_SERVER['DOCUMENT_ROOT'].$pdf_file); foreach($images as $i =>$image){ $image->setImageFormat('png'); $image->contrastImage( 1 ); $image->sharpenImage( 2,1 ); $image->scaleImage(0, 800); $image->writeImage($save_path.$i.'.png'); $picture_path[] = $filename.'-'.$i.'.png'; }

Ответ №1:

«делегаты» в Imagick-speak — это просто программы, которые imagick запускает для работы с некоторыми форматами файлов, которые он не может обработать самостоятельно. Как и в вашем случае — imagick не имеет встроенной программы чтения PDF, она полагается на GhostScript (я полагаю) для их отображения. Скорее всего, у вас либо не установлен GhostScript / GhostView, либо в PDF есть какая-то проблема, которая выводит из строя GhostScript — например, использование не встроенных шрифтов Windows.