windows服务器 php 使用imagick 将pdf文件转成图片
环境:windows
php版本:7.2
php框架:tp6
面版:宝塔
----------------------------------------------------
一、安装扩展 imagemagick
宝塔-》软件商店-》php7.2->设置-》安装扩展-》imagemagick-》重启php
查看安装成功与否 phpinfo()
二、安装软件 Ghostscript
下载地址:https://www.ghostscript.com/releases/gsdnld.html
找到与自已服务器操作系统对应的64或32位数,我的是64位
下载后直接安装
--修改文件名
找到Ghostscript安装目录C:\Program Files\gs\gs10.05.1,复制gswin64.exe一份 改成 gs.exe
查看是否安装成功!
cmd gs -v
---如果不成功,你需要看一下环境变量,是否已添加
控制面板-》系统-》高级系统设置-》环境变量
Path 添加 ghostscript 的安装目录\bin
三、php 生成图片
public function test(){ if (!extension_loaded('imagick')) { return 'imagick 扩展是不存在'; } $pdf = './upload/20250612/684ac59f4fff1.pdf'; if (!file_exists($pdf)) { return 'pdf文件不存在'; } $page = 0; //第一张图 $savePath = '/upload/'.date('Ymd');// 存储路径 $fileName = 'test.jpeg'; //存储图片名 $newImg = '.'.$savePath.'/'.$fileName; //新图片址 //判断储存目不是否存在 if(!is_dir('.'.$savePath)) { if (!mkdir('.'.$savePath, 0777, true)) { return ['sta'=>0,'msg'=>'无法创建目录 "' .'.'.$savePath. '"']; } } $imagick = new \Imagick(); $imagick->setResolution(300,300); //设置分辨率 值越大分辨率越高 $imagick->setCompressionQuality(100); //对png格式图片无效,数字越小质量越低 JPEG、WEBP $imagick->readImage($pdf.'['.$page.']');//读取文件 例:./upload/20250612/684ac59f4fff1.pdf[0] 读取第一张图片 $imagick->setImageFormat('jpeg'); //设置图片格式 $imagick->thumbnailImage(750, 0); //设置图片宽度,高度等比缩放 $res = $imagick->writeImage($newImg); //输出图片 dd($res); }