PHP 实现PDF转图片

news2025/7/8 21:28:56

目录

1.环境配置:

2.实现原理:

3.安装php扩展imagick

4.安装ghostscript

5.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转图片成功实现,因为只有一页,如果是多页则是多张图片。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/109121.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring-boot如何自行写一个starter并且使用

这里说的starter是pom中引入的一系列starter包,比如spring-boot-starter-web、mybatis-plus-boot-starter等。本文先已mybatis-spring-boot-starter的使用进行说明,然后得到使用的流程(套路),然后根据该流程&#xff0…

ddim原理及代码(Denoising diffusion implicit models)

前言 之前学习了 DDPM(DDPM原理与代码剖析)和 IDDPM(IDDPM原理和代码剖析), 这次又来学习另一种重要的扩散模型。它的采样速度比DDPM快很多(respacing),扩散过程不依赖马尔科夫链。 Denoising diffusion implicit models, ICLR 2021 理论 Astract和Int…

百果园通过港交所上市聆讯:八成营收来自加盟店,余惠勇为董事长

撰稿|汤汤 来源|贝多财经 近日,深圳百果园实业(集团)股份有限公司(下称“百果园”)通过港交所上市聆讯,并披露了聆讯后招股书。 根据招股书介绍,百果园是中国最大的水果零售经营商。根据弗若斯…

数据库实验6 存储过程实验

前言:游标的mysql代码不懂写,所以没有运行结果 实验6 存储过程实验 实验6.1 存储过程实验 1.实验目的 掌握数据库 PL/SQL 编程语言,以及数据库存储过程的设计和使用方法。 2.实验内容和要求 存储过程定义,存储过程运行,存储过程更名,存…

股票价、量走势图绘制

在证券投资分析领域中价、量走势分布图是投资者常用的一个参考方面。本案例主要介绍股票每日收盘价格、成交量的走势图以及月交易量分布饼图的绘制技能,并进一步介绍了子图的绘制方法。今有股票代码600000行情交易数据表(trd.xlsx)&#xff0…

SPDK线程模型

一、reactor线程 与传统的reactor线程模型相比,SPDK的reactor在功能实现上还是有很大区别的,线程不在基于流水线形式进行作业,而是采用Run-To-Complete来做运行处理。 如图所示,每个reactor线程会绑定一个cpu core,线…

力扣刷题笔记day7(数组中重复的数字+在排序数组中查找数字+0~n-1中缺失的数字)

文章目录数组中重复的数字题目思路代码在排序数组中查找数据题目思路代码0~n-1中缺失的数字题目思路代码数组中重复的数字 题目 思路 创建一个哈希表,将数组遍历,如果不存在则添加到哈希表中,如果存在则直接返回 代码 var fin…

电磁功率流和坡印廷矢量

回顾: 场源的影响周围的快慢取决于距离和传播速度 场源变化引起电磁波,电磁波传输能量 电磁能量的流动满足能量守恒定律 我们关心的是 体积V里面和体积外怎么交换能量,S是包围的闭合面 大家想一想,体积里面有场源 随着能量的…

Spring 中使用Nacos服务发现

引入依赖 <dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-spring-context</artifactId><version>${latest.version}</version> </dependency>本文使用的版本为&#xff1a;1.1.1&#xff08;与Spring 中…

微服务(二)——注册中心(Eureka、Nacos)

目录1. 概念2. Eureka1. 服务搭建1. 依赖导入2. 配置文件3. 启动项目2. 服务注册1. 依赖导入2. 配置文件3. 启动多个实例3. 服务发现1. 依赖导入2. 配置文件3. 服务拉取和负载均衡4. 小结3. Ribbon1. 负载均衡流程2. 负载均衡策略3. 加载策略4. Nacos1. 下载安装2. 注册中心1. …

css:隐藏input file标签并触发点击上传文件事件

目录方式一&#xff1a;将input标签覆盖到按钮的最上层方式二&#xff1a;通过label标签触发点击事件方式三&#xff1a;js触发文件上传的点击事件总结通用的按钮样式 /* button样式来自element-ui */ .button {color: #fff;background-color: #409eff;display: inline-block;…

【MQTT】mqtt + go + M5Stack + SSR 远程灯控程序

1. mqtt服务搭建 参考上一篇文章【MQTT】mqtt 服务器部署--go 生产和消费demo_平静不绝望的博客-CSDN博客 2. M5stack 烧录和编程 详细文档&#xff1a;m5-docs mac 需要安装USB驱动 和 m5burner 如下图 3. flow ui 编程 SSR 4. go web远程代码 s.Router.HandleFunc(&…

UE中的FString操作

此篇是指单纯记录&#xff0c;方便之后查阅。 目录 创建 转型到FString FString转型到其他类型 字符串中是否包含指定串 查找给定串在其中是什么位置 字符串比较 读文件 裁剪字符串 编码解决的是文字问题 稍微细致一些的可以看&#xff1a; UE4随笔&#xff1a;FStri…

TI 2640 Quick start

&#xff08;1&#xff09;下载ccs 并且安装 &#xff08;2&#xff09;下载对应版本的SDK&#xff0c;并且安装 SDK对应版本下载可以通过搜索的方式&#xff1a;simplelink_cc2640r2_sdk_5_30_00_03 &#xff08;3&#xff09;导入对应的工程文件 此篇文档可以作为参考&#x…

喜讯丨计讯物联荣获厦门软件园党群服务中心篮球赛亚军

蓄势待发迎“篮”上&#xff0c;齐心协力谱新篇。12月17日&#xff0c;厦门软件园党群服务中心篮球赛完美落幕。计讯物联一路过关斩将&#xff0c;荣获厦门软件园党群服务中心篮球赛亚军。 决胜雅马哈&#xff0c;强势晋级半决赛 随着一声哨响&#xff0c;比赛正式拉开帷幕&…

2个月备考通过系统架构设计师考试,把经验分享给孤军奋战的你

一、前言 本来于2022-08-29报考系统架构设计师&#xff0c;报考完成以后才开始了正式的学习&#xff0c;也就是9月初才开始系统学习&#xff0c;2022-11-05开始考试&#xff0c;中间准备了两个月的时间。 当时公司业务受疫情影响严重&#xff0c;领导叫我考一个证书吧&#xf…

Android制作简易的音乐播放器和视频播放器

文章目录制作简易的音乐播放器和视频播放器播放多媒体文件播放音频MediaPlayer的工作流程项目示例播放视频项目示例制作简易的音乐播放器和视频播放器 播放多媒体文件 Android在播放音频和视频方面做了非常不错的支持,它提供了一套非常完整的API,使得开发者可以轻松编写出一个…

JavaEE入门知识

1.为什么要学习框架&#xff1f; 1. 学习框架相当于从“⼩作坊”到“⼯⼚”的升级&#xff0c;⼩作坊什么都要⾃⼰做&#xff0c;⼯⼚是组件式装配&#xff0c;特点就是⾼效。 2. 框架更加易⽤、简单且⾼效。 2.创建一个Servlet项目&#xff08;我使用的是IDEA专业版&#…

USB TO SPI(上海同旺电子)调试器调试MCP6S92

所需设备&#xff1a; 1、USB TO SPI(上海同旺电子)&#xff1b; 2、MCP6S92 单端轨到轨输入/ 输出低增益PGA; 特性 • 复用输入&#xff1a;1 或2 个通道 • 8 种增益选择&#xff1a; - 1、2、4、5、8、10、16 或32 V/V • 串行外设接口&#xff08;SPI&#xff09; • 轨…

生成模型(三):基于流的生成模型(Flow-based model)

本文大纲如下&#xff1a; 到目前为止&#xff0c;已经介绍了[[生成模型-GAN]]和[[生成模型-VAE]]。它们都没有明确地学习真实数据的概率密度函数p(\mathbf{x})&#xff08;其中\mathbf{x}\in \mathcal{D}&#xff09;, 因为很难。以带有潜变量的生成模型为例&#xff0c;p(\ma…