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/
2、将下载下来的imagemagick文件解压到E盘目录下(目录可根据情况调整,我这里E:\ImageMagick-7.1.0-18-vc15-x64);
3、将E:\ImageMagick-7.1.0-18-vc15-x64\bin加入到系统环境变量path中
4、然后将E:\ImageMagick-7.1.0-18-vc15-x64\bin目录下所有的以dll结尾的文件复制到php根目录下,如果提示重复点击跳过即可
5、复制完成后重启Apache(建议重启计算机),这时候php的imagick拓展安装完成
三、安装Ghostscript软件
1、Ghostscript下载地址:https://www.ghostscript.com/releases/gsdnld.html
四、实例
/**
* @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;
}
来源: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