PHP实现PDF转图片的详细过程(使用imagick)
作者:JSON_L 发布时间:2023-09-07 13:27:34
标签:php,pdf,图片
1.环境配置:
2.实现原理:
Php使用扩展插件imagick进行图片处理,处理pdf时使用imagick去调用ghostscript
3.安装php扩展imagick
imagick是一个PHP扩展,调用的是ImageMagick提供API来进行图片的创建与修改。
我这里直接使用宝塔面板安装的,比较简单。
也可以使用源码安装。
Php > 安装扩展 > imagemagick > 安装
安装完成
命令窗口测试
php --ri imagick
4.安装ghostscript
ghostscript一款图像浏览工具,这款软件适用于Unix、Mac OS X、VMS、Windows、OS/2和Mac OS classic等操作系统的使用。Ghostscript中文版能够查看以及打印PS、EPS、PDF格式的文件
安装命令很简单
yum install ghostscript
当没有安装ghostscript 直接使用,报错:
5.pdf转图片
功能代码
/**
* 将pdf文件转化为多张png图片
*/
function pdfToPng()
{
$pdf = 'https://solveset.oss-cn-beijing.aliyuncs.com/1671686912.pdf';
$path = public_path('uploads/');
$im = new \Imagick();
$im->setResolution(120, 120); //设置分辨率 值越大分辨率越高
$im->setCompressionQuality(100);
$im->readImage($pdf);
$return = [];
foreach ($im as $k => $v) {
$v->setImageFormat('png');
$fileName = $path . md5($k . time()) . '.png';
if ($v->writeImage($fileName) == true) {
$return[] = $fileName;
}
}
print_r($return);
}
返回结果:
打开图片
Pdf转图片成功实现,因为只有一页,如果是多页则是多张图片。
来源:https://blog.csdn.net/json_ligege/article/details/128413937


猜你喜欢
- 关于数据库性能的故事面试时多多少少会讲到数据库上的事情,“你对数据库的掌握如何?”,什么时候最考验数据库的性能,答应主要方面上讲就是大数据量
- 假设我们有一幅图像,图像中的文本被旋转了一个未知的角度。为了对文字进行角度的校正,我们需要完成如下几个步骤:1、检测出图中的文本范围2、计算
- 在python处理数据时,经常用到DataFrame和set。train=pd.read_csv('XXX.csv')#读取
- 下策——查询出结果后将时间排序后取第一条select * from a where create_time<="2017-0
- 登陆万事开头难,做什么事都要有个起点,后面才能更好的进行下去,因此我选择的起点就是最为直观的登陆页面 /login/index.vue/sr
- 本文实例讲述了Windows平台Python连接sqlite3数据库的方法。分享给大家供大家参考,具体如下:之前没有接触过sqlite数据库
- 本文较为详细的分析了php提示Failed to write session data错误的解决方法。分享给大家供大家参考。具体方法如下:一
- 一):视图的定义视图是由基于一个或多个表的一个查询所定义的虚拟表,它将查询的具体定义保存起来,视图不包含任何数据。视图在操作上和数据表没有什
- Hpack 是啥Hpack 是 HTTP2 的头部压缩算法。在 HTTP1 中,每次传输都会有大量的 Header 携带,我们可以拿一个实际
- 函数先定义函数,后调用一、定义函数:1、简单的规则:函数代码块以 def 关键词开头,后接函数标识符名称和圆括号&nbs
- 一道笔试题思考而来的,通常情况下没人会在函数内部修改参数值。这里仅拿出来讨论,有三种方式可以修改。1,直接修改函数声明时的形参functio
- 前言:Ruby 与 Python 之间的差异在很大程度上可通过for循环看出本质。Python 拥有for语句。对象告诉for如何进行协作,
- 本文实例讲述了CentOS7安装mysql5.7解压缩版的方法。分享给大家供大家参考,具体如下:1.下载安装包http://dev.mysq
- ///计算两个整数的百分比值 function GetPercent(num, total) { num = parseFloat(num)
- 1、确认mysql是否已安装,有下面的代码可知[root@cdh1 zjl]# yum list installed mysql*Loade
- 前言在前面的分享中,我们制作了一个天眼查 GUI 程序,今天我们在这个的基础上,继续开发新的功能,微博抓取工具,先来看下最终的效果整体的界面
- Tip:本文仅供学习与交流,切勿用于非法用途!!!背景介绍有个同学问我:“XXX,有没有办法搜集一下淘宝的商品信息啊,我想要做个统计”。于是
- mysql 8.0.22 下载安装配置方法,供大家参考,具体内容如下1、进入MySQL官网下载,或直接点击下载 双击直接安装,一直
- DROP TABLE IF EXISTS [TEMP_TABLE_NAME]; create temporary table [TEMP_T
- 等差数列末项计算题目内容:给出一个等差数列的前两项a1,a2,求第n项是多少可以使用以下语句实现非负整数n的输入:n=int(input()