做项目碰到这么个需求,前后找了不少相关的解决方案,终于完成,分享给大家,如有错误疏漏还望多多指正讨论

该文档部分参数参考来源于 https://www.codenong.com/6605006/

1.首先在linux环境下安装 unoconv (用于文件格式的转换)
执行命令: yum install -y unoconv
2.第一步安装成功后再安装ImageMagick (用来处理图片)
执行命令(注意大小写): yum install -y ImageMagick
3.先进行ppt的文件格式转换
执行命令: unoconv -f pdf xxx.pptx
pdf是要输出文件的名称和格式,这一步操作会在当前文件夹下生成一个同名的pdf文件,用于后续的图片处理
4.处理pdf文件将其转为图片文件列表
执行命令: convert xxx.pdf %d.jpg
xxx.pdf要转换的文件,%d页码变量,将pdf按页转成图片文件,有多少页就会有多少个对应页码数的图片文件,不带参数的情况下,这一步转出的图片清晰度不够,需要附加一些参数来提高清晰度,详细可参考文档开头的网址;
这里简单描述较常用的2个参数:
-density 参数有点特殊,因为必须位于输入文件之前。由于PDF是基于矢量的文件格式,没有像素的概念,因此它表示"页面为8英寸乘12英寸"。如果需要像素,可以使用density设置告诉它要在输出中获得的每英寸像素数。例如使用150,您将在结果图像中得到8x150 = 1200 x 12x150 = 1800像素。那也就是进行锐化,对比度,压缩等设置的像素数量
-density 300设置pdf渲染的dpi

-quality 图片质量
-quality 100将JPEG压缩质量设置为最高质量

综合执行命令: convert -density 300 -quality 100 xxx.pdf %d.jpg
如执行上述命令,会执行较长时间,但图片质量也有较大提升,同时图片的大小也会增加不少
5.实际应用于项目中还需将该执行命令封装一下,使用exec函数(php语言)执行
@exec(‘unoconv -f pdf xxx.pptx ’)
@exec(‘convert -density 300 -quality 100 xxx.pdf %d.jpg ’)
说明: @用户忽略报错信息,可不加该字符
6.以上方法执行可能会存在执行无效果,可以排查禁用函数,和php.ini配置问题,如还不能解决问题可采用下述方法:
exec(“PATH=/sbin:/bin:/usr/sbin:/usr/bin unoconv --format=pdf --output=”.outputlj."".output_lj." ".outputl​j."".file_name);

outputlj是完整的文件导出路径及文件名,output_lj是完整的文件导出路径及文件名,outputl​j是完整的文件导出路径及文件名,file_name是要操作文件的完整路径及文件名
convert 方法同理;这里执行不成功很有可能是php没有响应的执行权限
7.至此关于PPT转图片的基本操作流程及方法总结完毕,如有不完善,不细致的地方,还望多多指正

linux环境操作PPT转图片总结相关推荐

  1. linux环境用opencv读取图片,基于Linux下OpenCV的人脸识别模块设计

    金笑雪 张琳琳 高丹 张黎 摘 要: 近年来,图像识别技术正在向更加直观.可靠的方向发展,其中人脸识别技术具有极高的研究价值,应用得也最为广泛.通过对Linux系统下OpenCV的研究,利用OpenC ...

  2. Linux环境—JPEG/JPG/PNG图片转换WEBP格式(二)

    PHP源码编写 <?php /**  * Use : 将JPEG/JPG/PNG 的图片转换为 WEBP 格式  * User: yKan_SF  * Date: 2018-2-27  * Ti ...

  3. Linux平台PPT转图片(Python)

    由于网站一般是展示PPT,想要在WEB上进行PPT展示且资源地址不在公网,一般只能通过PPT转化为图片,再由前端进行图片的展示. 由于项目部署环境都在Linux平台,所以需要进行Linux平台上PPT ...

  4. (超好用)linux/Windows环境下pdf转图片

    前言:最近开发需要将pdf转图片,我用到两种方法进行转换 方法一: 通过BufferedImage进行pdf转换, 实现:Windows下正常转换,Linux下出现异常报错 展示效果:图片较模糊 Le ...

  5. zookeeper 单机和集群搭建(windows环境+linux环境)

    文章目录 一.单机操作 1. 下载 2. 解压 3. 修改配置文件 4. 启动 二.集群操作 2.1. zoo.cfg添加集群配置 2.2. 在3台zk数据目录下面创建myid文件 2.3. 分别启动 ...

  6. linux开发板显示百叶窗图片,03Linux命令操作2

    第一天 第一个小时嵌入式介绍,何为嵌入式,为什么学习嵌入式,嵌入式的发展前景,嵌入式的具体工作岗位以及薪资待遇如何. 第二个小时项目介绍 1.为什么需要项目的的沉淀,企业需要什么样的嵌入式开发人才 2 ...

  7. linux环境编程 学习,学习linux环境高级编程首先学习的是文件的操作。因为有.pdf...

    学习linux环境高级编程首先学习的是文件的操作.因为有 学习 Linux 环境高级编程,首先学习的是文件的操作.因为有一句很有趣的话"Linux 下一切皆文件".所以掌握了文件操 ...

  8. linux环境C语言操作数据库

    在实际应用中,我们不可能在命令行登录进数据库进行数据的查询.插入等操作,用户一般是使用一个界面良好的应用程序软件来对数据进行管理.为了方便应用程序的开发,MySQL提供了多种编程语言(C.perl.p ...

  9. linux下ppt转图片的方法

    上篇介绍了windows上将ppt转换为图片的方法,但是在linux平台上确并无法使用,这里再介绍一下自己开发过程中使用的linux上ppt转图片的方法! 同样的,使用POI会有之前存在的清晰度以及内 ...

  10. Linux环境变量getenv setenv unsetenv操作

    Linux环境变量getenv setenv unsetenv操作 在linux操作系统中,可以通过man来进行相关函数的查看 eg: man setenv 1.setenv 设置环境变量 //函数原 ...

最新文章

  1. python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发
  2. JSP与servlet之间的传值方式
  3. 视频技术详解:语音编解码技术演进和应用选型
  4. boost::hana::find用法的测试程序
  5. 建筑电气工程设计常用图形和文字符号_怎么看懂建筑电气工程图?用最直白方式,教你基础识图!超级详细...
  6. 配置opencv cmake
  7. Linux系统中的load average
  8. mysql 把一个字段的值_mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法...
  9. Netty实现原理分析
  10. 云原生势不可挡,华为云GaussDB加速企业数字化转型
  11. 熊猫Pivot_table()– DataFrame数据分析
  12. 大量用户升级iPhone3.0系统导致苹果服务器故障
  13. Dijkstra算法(matlab实现)
  14. 唐宇迪pytorch课程全部代码数据集github
  15. 局域网共享工具_Win10局域网共享开启工具
  16. 数据分析思维(极客时间)
  17. 数据恢复软件的原理是什么?
  18. 微信隐藏代码大全(来源于网络)
  19. 35岁,你要逃离北上广?
  20. SLAM中的边缘化舒尔补

热门文章

  1. 台式电脑接路由器步骤_无线路由器连接台式电脑的方法
  2. 超级详细-NMOS、PMOS的工作原理及相关内容整理(上)
  3. 2020南京市(徐庄)高层次创业人才引进计划开启申报
  4. php 一次性动态口令,一次性口令 (OTP) 动态口令身份认证
  5. 【计几】二维计算几何基础
  6. 蓝字冲销是什么意思_​红字发票和蓝色发票是什么意思
  7. Windows安装MySql
  8. 微软MSDN Webcast系列视频教程集锦整理
  9. 只有VOB 文件,怎样使用IfoEdit生成烧制DVD所需的IFO、BUP文件!
  10. 2021-06-22