PHP实现PDF转图片的详细过程(使用imagick)

1.环境配置:

图片[1]-PHP实现PDF转图片的详细过程(使用imagick)-爱站

2.实现原理:

Php使用扩展插件imagick进行图片处理,处理pdf时使用imagick去调用ghostscript

3.安装php扩展imagick

imagick是一个PHP扩展,调用的是ImageMagick提供API来进行图片的创建与修改。

我这里直接使用宝塔面板安装的,比较简单。

也可以使用源码安装。

Php > 安装扩展 > imagemagick > 安装

图片[2]-PHP实现PDF转图片的详细过程(使用imagick)-爱站

图片[3]-PHP实现PDF转图片的详细过程(使用imagick)-爱站

安装完成

图片[4]-PHP实现PDF转图片的详细过程(使用imagick)-爱站

命令窗口测试

1
php --ri imagick

图片[5]-PHP实现PDF转图片的详细过程(使用imagick)-爱站

4.安装ghostscript

ghostscript一款图像浏览工具,这款软件适用于Unix、Mac OS X、VMS、Windows、OS/2和Mac OS classic等操作系统的使用。Ghostscript中文版能够查看以及打印PS、EPS、PDF格式的文件

安装命令很简单

1
yum install ghostscript

图片[6]-PHP实现PDF转图片的详细过程(使用imagick)-爱站

当没有安装ghostscript 直接使用,报错:

图片[7]-PHP实现PDF转图片的详细过程(使用imagick)-爱站

5.pdf转图片

功能代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
 * 将pdf文件转化为多张png图片
 */
function pdfToPng()
{
    $pdf = 'https://solveset.oss-cn-beijing.aliyuncs.com/1671686912.pdf';
    $path = public_path('uploads/');
    $im = new \Imagick();
    $im->setResolution(120, 120); //设置分辨率 值越大分辨率越高
    $im->setCompressionQuality(100);
    $im->readImage($pdf);
    $return = [];
    foreach ($im as $k => $v) {
        $v->setImageFormat('png');
        $fileName = $path . md5($k . time()) . '.png';
        if ($v->writeImage($fileName) == true) {
            $return[] = $fileName;
        }
    }
    print_r($return);
}

返回结果:

图片[8]-PHP实现PDF转图片的详细过程(使用imagick)-爱站

打开图片

图片[9]-PHP实现PDF转图片的详细过程(使用imagick)-爱站

Pdf转图片成功实现,因为只有一页,如果是多页则是多张图片。

原文链接:https://blog.csdn.net/json_ligege/article/details/128413937

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容