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