前提为已配置好PHP环境, 本文以PHP7.4为例,
需要在Windows上安装这3个软件: PHP的imagick扩展, ImageMagick, GhostScript
下文会提及安装方法或下载地址
具体步骤如下
Step1 安装Imagick扩展, 方法见这篇文章
Step2 安装ImageMagick
请在其官网下载, 安装时注意勾选以下3项
Step3 安装GhostScript
目前这个页面可以下载, 可以下载GPL版, 然后安装
Step4 将GhostScript添加到PATH
打开 此电脑
->右键属性
->高级系统设置
->高级
->环境变量
->系统变量里找到Path
->编辑
->新建, 然后添加GhostScript安装目录下的bin目录, 如下图
->然后一路确定保存
Step5 重启计算机
Step6 测试pdf转为png
Step6.1建立文件夹如下文件夹
d:\test
d:\test\image
Step6.2在d:\test里放一个1.pdf
Step6.3运行如下代码实现转换
<?php
/**
* PDF2PNG
* @param $pdf 待处理的PDF文件
* @param $path 待保存的图片路径
* @param $page 待导出的页面 all为全部 1为第一页 2为第二页
* @param $pixel 分辨率, 像素
* @return 保存好的图片路径和文件名
*/
function pdf2png($pdf, $path, $page = 'all', $pixel = 120)
{
if (!extension_loaded('imagick')) {
echo '未加载imagick扩展';
return false;
}
if (!file_exists($pdf)) {
echo '未找到pdf源文件';
return false;
}
$im = new Imagick();
$im->setResolution($pixel, $pixel);
$im->setCompressionQuality(100);
if ($page !== 'all') {
$key = $page - 1;
$pdf .= "[$key]";
}
$im->readImage($pdf);
foreach ($im as $k => $v) {
$v->setImageFormat('png');
$filename = $path . "/" . md5($k . time()) . '.png';
if ($v->writeImage($filename) == true)
$return[] = $filename;
}
return $return;
}
$pdf = "d:/test/1.pdf"; //pdf源文件
$path = "d:/test/image"; //保存png的文件夹, 须先行建立, 以免报错
$res = pdf2png($pdf, $path);
echo '<pre>';
print_r($res);
需要注意的是: imagick的转换需要使用绝对路径, 我还没有找到使用相对路径进行转换的方法
这样就可以在Windows下用PHP将PDF转为图片啦
参考文献: