最近的PHP项目中,需要用到PDF转图片的功能,在本地windows开发环境,安装过程遇到好多问题,在此与大家分享。
严格按照以下步骤可以保证一次成功
1 首先建议先安装Imagick拓展
下载php_magick组件。
http://pecl.php.net/package/imagick
注意要选择对应版本—线程安全 和非线程安全版本 php版本64位和32位
具体步骤
1首先要打开phpinfo
2打开网址
所选的版本红框内信息一定要与第一步的信息相同,否则会失败
3打开压缩包
第一步将红框内的文件(php_imagick.dll) 放入php的ext文件夹下
例如:E:\phpStudy\PHPTutorial\php\php-7.1.13-nts\ext
第二步将除红框文件外的其他文件全部移动到php的文件夹下
例如:E:\phpStudy\PHPTutorial\php\php-7.1.13-nts\
4修改php.ini
5重启本地环境
打开phpinfo,看到imagick说明拓展安装成功
2 安装ImageMagick拓展
ImageMagick安装前注意:前面安装好imagick以后可以看到如下信息
红框内信息 就是支持的ImageMagick的版本,安装其他版本同样会导致失败
1下载ImageMagick
http://ftp.icm.edu.pl/packages/ImageMagick/binaries/
找到并下载
2安装ImageMagick
安装好以后
首先将安装路径添加到path环境变量
例如:C:\Program Files (x86)\ImageMagick-6.9.3-Q16
然后以防万一将安装目录下的.dll文件全部复制到php目录下
例如:E:\phpStudy\PHPTutorial\php\php-7.1.13-nts
默认全部替换即可(只要拓展和ImageMagick版本对应替换不会出问题)
3查看phpinfo
以防万一 重启电脑 再启动本地环境打开phpinfo
看到上面的信息说明ImageMagick安装成功
3 安装ghostscript
1此时还不能使用PDF转图片功能
还需要安装ghostscript
安装成功以后,以防万一再次重启电脑,启动本地环境
2测试代码
function pdf2png($pdf, $path)
{
if (!extension_loaded('imagick')) {
return false;
}
if (!file_exists($pdf)) {
return false;
}
$im = new Imagick();
$im->setResolution(120, 120); //设置分辨率 值越大分辨率越高
$im->setCompressionQuality(100);
$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如果比较大注意php脚本设置执行时间
可以看到转换成功