音乐小精灵 发表于 2023-2-25 22:15:40

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

1.环境配置:

https://img.jbzj.com/file_images/article/202301/2023011315233483.png

2.实现原理:

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

3.安装php扩展imagick

imagick是一个PHP扩展,调用的是ImageMagick提供API来进行图片的创建与修改。
我这里直接使用宝塔面板安装的,比较简单。
也可以使用源码安装。
Php > 安装扩展 > imagemagick > 安装https://img.jbzj.com/file_images/article/202301/2023011315233584.jpg
https://img.jbzj.com/file_images/article/202301/2023011315233585.png
安装完成
https://img.jbzj.com/file_images/article/202301/2023011315233586.jpg
命令窗口测试
php --ri imagickhttps://img.jbzj.com/file_images/article/202301/2023011315233587.jpg

4.安装ghostscript

ghostscript一款图像浏览工具,这款软件适用于Unix、Mac OS X、VMS、Windows、OS/2和Mac OS classic等操作系统的使用。Ghostscript中文版能够查看以及打印PS、EPS、PDF格式的文件
安装命令很简单
yum install ghostscripthttps://img.jbzj.com/file_images/article/202301/2023011315233588.png
当没有安装ghostscript 直接使用,报错:
https://img.jbzj.com/file_images/article/202301/2023011315233589.png

5.pdf转图片

功能代码
/**
* 将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);
} 返回结果:
https://img.jbzj.com/file_images/article/202301/2023011315233590.png
打开图片
https://img.jbzj.com/file_images/article/202301/2023011315233591.jpg
Pdf转图片成功实现,因为只有一页,如果是多页则是多张图片。

总结

到此这篇关于PHP实现PDF转图片的文章就介绍到这了,更多相关PHP PDF转图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/article/272638.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: PHP实现PDF转图片的详细过程(使用imagick)