php通过Imagick将PDF转换成PNG

挖坑之路年年有,今年特别多

PHP版本7.3.9NTS
PHP Version 7.3.9  
API320180731,NTS,VC15
上面的要注意;

然后就是下载扩展,下载软件;

https://windows.php.net/downloads/pecl/deps/ImageMagick-7.0.7-11-vc15-x64.zip

下载这个imagemagick

由于我的环境是phpstudy的。所以就在跟目录建立个imagemagick文件夹。然后解压文件。图片是这样的

完了给bin目录加入到环境变量。

然后也不知道哪个爹告诉我,在bin里面搜索.dll放到php版本下面的跟目录。我就信了。妹的,linux里面咋搞。还不知道。先玩着,然后根目录下面一堆dll。也分不清哪个是原来的。坑爹必备

软件搞定了,搞php扩展吧

https://windows.php.net/downloads/pecl/releases/imagick/3.4.4/php_imagick-3.4.4-7.3-ts-vc15-x64.zip

我在这里下载个php扩展。然后给下面这俩文件放到版本下面的ext。php7.3.9nts\ext。别问我为啥给pdb放上。老夫乐意。毕竟心态崩了

php_imagick.dll

php_imagick.pdb

在php.ini里面加个扩展 extension=php_imagick.dll 别整错php版本

然后输入phpinfo看看装上了没有。如果装不上了话。踹几脚电脑估计也不能好。就是版本不对。php的扩展啊啥玩意的。

然后好像加环境变量要特么重启电脑。记得

装完了,come on 测试吧。

function pdf2png($pdf, $path)
{

    if (!extension_loaded('imagick')) {
        return false;
    }
    if (!file_exists($pdf)) {
        return false;
    }

    $im = new Imagick();
    $im->setResolution(120, 120); //设置分辨率 值越大分辨率越高
    $im->setCompressionQuality(100);
    $im->readImage($pdf);

    foreach ($im as $k => $v) {
        $v->setImageFormat('png');
        $fileName = $path . md5($k . time()) . '.png';
        if ($v->writeImage($fileName) == true) {
            $return[] = $fileName;
        }
    }
    return $return;
}

别跑,还特么没完呢!

$im->readImage($pdf);

上面这句话报错。这个der。也不知道谁整的。查百度。

让下载 Ghostscript 也不知道哪个公司开发的。居然没有老版本。装了新版本也不能用。

害的我下了一堆广告。。。

说下解决方案。

phpinfo里面看,看到下面那个时间没?

然后在下面的git里面找时间临近的版本!

https://github.com/ArtifexSoftware/ghostpdl-downloads/tags

下完了安装。

最后别忘了给Ghostscript 加入环境变量。

之后重启电脑。

然后生成就行了。

坑爹的软件