PHP Imagick无法使用Microsoft EDGE生成的pdf

时间:2018-09-14 05:24:32

标签: php pdf imagick

所以我正在使用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中附加一个图像标签。

除了所有由Microsoft PDF创建者创建的PDF之外,这对于所有pdf都适用。

对于那些pdf,它显示空白图像。

我试图从命令行运行pdf转换并得到以下错误。 enter image description here

请让我知道我在这里想念的东西。

1 个答案:

答案 0 :(得分:0)

好的,如果还有其他人遇到相同的问题,那么更新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)