PHP Imagick не работает с PDF, созданным Microsoft EDGE - PullRequest
0 голосов
/ 14 сентября 2018

Итак, я работаю над проектом на PHP.Мне нужно конвертировать PDF-страницы в изображения.

Для этого я использую библиотеку Imagick.

Вот мой код

        $imagick = new imagick($pdfPath);
        $noOfPagesInPDF = $imagick->getNumberImages();
        $pdfAbsolutePath = $pdfPath;

        for ($i = 0; $i < $noOfPagesInPDF; $i++) {
            $url = $pdfAbsolutePath . '[' . $i . ']';
            $img = new imagick();
            $img->setResolution(150, 150);
            $im->setImageBackgroundColor('black');
            $img->readImage($url); 
            $img->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
            $img->setImageFormat('jpeg');
            $img->setImageCompression(imagick::COMPRESSION_JPEG);
            $img->setImageCompressionQuality(70);

            $base64EncodeData = base64_encode($img->getImageBlob());
            $imageSrc = 'data:image/jpeg;base64,'. $base64EncodeData;
            $img->clear();
            $img->destroy();
            renderImage($imageSrc);
        }

В моей функции renderImage я просто добавляю тег изображения в Html.

Это прекрасно работает для всех PDF, кроме тех, которые созданы Microsoft PDF Creator.

Для этих PDF это пустые изображения.

Я попытался запустить конвертирование pdf из командной строки и получил следующую ошибку.enter image description here

Пожалуйста, дайте мне знать, что мне здесь не хватает.

1 Ответ

0 голосов
/ 25 сентября 2018

Хорошо, если у кого-то еще возникла такая же проблема, обновление версии Ghostscript помогло мне.

Загрузите GhostScript-9.25 zip и выполните следующие команды.

tar xvf ghostscript-9.25.tar.gz
sudo apt-get install build-essential
cd ghostscript-9.25/
sudo ./configure
sudo make install (it may take 2 to 3 min)
...