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

作者:JSON_L 时间:2023-09-07 13:27:34 

1.环境配置:

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

2.实现原理:

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

3.安装php扩展imagick

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

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

也可以使用源码安装。

Php > 安装扩展 > imagemagick > 安装

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

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

安装完成 

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

命令窗口测试

php --ri imagick

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

4.安装ghostscript

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

安装命令很简单

yum install ghostscript

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

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

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

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);
}

 返回结果:

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

打开图片

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

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

来源:https://blog.csdn.net/json_ligege/article/details/128413937

标签:php,pdf,图片
0
投稿

猜你喜欢

  • Python脚本开发漏洞的批量搜索与利用(GlassFish 任意文件读取)

    2023-01-30 20:08:36
  • python 获取文件列表(或是目录例表)

    2021-06-27 20:14:24
  • XML与HTML的结合(下)

    2008-09-05 17:20:00
  • 利用canvas实现的加载动画效果实例代码

    2023-06-29 22:49:51
  • SQL Server的BUILTIN\\Administrators用户

    2009-02-04 13:51:00
  • 浅谈mysql中多表不关联查询的实现方法

    2024-01-14 21:29:21
  • 在 Linux/Mac 下为Python函数添加超时时间的方法

    2023-08-17 14:27:12
  • python删除文件、清空目录的实现方法

    2021-06-02 02:53:06
  • js遍历详解(forEach, map, for, for...in, for...of)

    2024-04-29 13:20:06
  • python贪吃蛇游戏代码

    2023-07-22 04:19:17
  • 安装MySQL的步骤和方法

    2009-07-30 08:38:00
  • SpringBoot集成内存数据库Sqlite的实践

    2024-01-15 10:24:11
  • python 进程池pool使用详解

    2022-02-13 03:42:52
  • 详解python中的数据类型和控制流

    2022-08-11 14:32:50
  • Golang中的参数传递示例详解

    2024-05-08 10:51:33
  • MySQL最新漏洞分析

    2012-07-11 15:41:10
  • Web 2.0 框架发布

    2008-03-25 09:40:00
  • 深入了解和应用Python 装饰器 @decorator

    2024-01-02 09:20:05
  • Python tkinter三种布局实例详解

    2022-11-28 11:23:44
  • Python中使用socks5设置全局代理的方法示例

    2021-05-24 01:51:17
  • asp之家 网络编程 m.aspxhome.com