PHP实现PDF转图片的方法详解

作者:程序员-南 时间:2023-05-26 19:59:51 

Windows环境下

一、开启 Imagick 扩展

1、安装PHP扩展:Imagick,下载地址 https://pecl.php.net/package/imagick 注意和php版本保持一致;

2、将下载下来的文件解压,把php_imagick.dll复制到php/ext下,即php的扩展目录;

3、打开php.ini文件,添加

extension=php_imagick.dll

4、重启apache

二、安装imagemagick

1、下载地址:https://windows.php.net/downloads/pecl/deps/

PHP实现PDF转图片的方法详解

2、将下载下来的imagemagick文件解压到E盘目录下(目录可根据情况调整,我这里E:\ImageMagick-7.1.0-18-vc15-x64);

3、将E:\ImageMagick-7.1.0-18-vc15-x64\bin加入到系统环境变量path中

PHP实现PDF转图片的方法详解

4、然后将E:\ImageMagick-7.1.0-18-vc15-x64\bin目录下所有的以dll结尾的文件复制到php根目录下,如果提示重复点击跳过即可

PHP实现PDF转图片的方法详解

5、复制完成后重启Apache(建议重启计算机),这时候php的imagick拓展安装完成

三、安装Ghostscript软件

1、Ghostscript下载地址:https://www.ghostscript.com/releases/gsdnld.html

PHP实现PDF转图片的方法详解

四、实例

/**
    * @package pdf文档转换图片
    * @param   string      $filepath pdf文档绝对路径 D:/test/test.pdf
    * @param   string      $filename 文件夹名 每个pdf创建一个文件夹
    * @return  array
    */
   public function pdf2png($pdf,$filename){

       $path = ROOT_PATH . "public". DS ."uploads". DS ."ppt_image". DS . $filename ; // 图片存放目录
          if (!file_exists($path)) {
         mkdir($path, 0700, true); //创建目录
         chmod($path, 0700); //赋予权限
       }
       $images = [];

       $imagick = new \Imagick();
       // 设置图片分辨率
       $imagick->setResolution(120, 120);
       // 该函数接受单个参数$quality,该参数保存一个表示图像压缩质量的整数值
       $imagick->setCompressionQuality(100);
       $imagick->readImage($pdf);

       foreach ($imagick as $key => $val) {
           // 设置图片格式并生成png图片
           $val->setImageFormat('png');
           // $file = $path . DIRECTORY_SEPARATOR . md5($key.time()) . '.png';    //图片名
           $file = $path . DS . md5($key.time()) . '.png';    //图片名
           if ($val->writeImage($file) === true) {
               $images[] = $file;
           }
       }
       return $images;
   }

PHP实现PDF转图片的方法详解

PHP实现PDF转图片的方法详解

来源:https://blog.csdn.net/qq_42342282/article/details/128340562

标签:PHP,PDF,图片
0
投稿

猜你喜欢

  • mysql 时间戳的用法

    2024-01-18 03:11:37
  • 7个流行的Python强化学习算法及代码实现详解

    2021-07-06 08:38:03
  • golang 中signal包的Notify用法说明

    2023-07-19 19:06:36
  • Python使用sftp实现传文件夹和文件

    2021-09-30 12:27:37
  • python多进程共享变量

    2023-08-30 07:40:53
  • YOLOv5车牌识别实战教程(四)模型优化与部署

    2021-04-22 01:32:27
  • 使用python 进行区间取值的方法

    2023-12-17 01:27:56
  • 修改数据库为多用户模式

    2024-01-19 13:53:56
  • 使用Python做定时任务及时了解互联网动态

    2021-07-08 17:54:16
  • 如何远程使用服务器上的Jupyter notebook

    2023-02-08 10:45:54
  • Oracle函数使索引列失效的解决办法

    2024-01-15 16:52:08
  • 数据库中聚簇索引与非聚簇索引的区别[图文]

    2012-02-25 19:38:23
  • Vuex和前端缓存的整合策略详解

    2024-05-09 15:17:14
  • Python调试神器之PySnooper的使用教程分享

    2021-12-24 15:37:01
  • Python调用API接口实现人脸识别

    2022-09-10 22:42:20
  • mysql优化配置参数

    2024-01-27 11:25:35
  • ext3下删除mysql数据库的数据恢复案例

    2009-05-13 14:39:00
  • 详解JS中的compose函数和pipe函数用法

    2024-04-18 10:59:25
  • Python绘制柱状图可视化神器pyecharts

    2023-06-07 12:38:41
  • 最新LOGO设计流行趋势——叶子

    2007-10-02 18:26:00
  • asp之家 网络编程 m.aspxhome.com