linux环境操作PPT转图片总结
做项目碰到这么个需求,前后找了不少相关的解决方案,终于完成,分享给大家,如有错误疏漏还望多多指正讨论
该文档部分参数参考来源于 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." ".outputlj."".file_name);
outputlj是完整的文件导出路径及文件名,output_lj是完整的文件导出路径及文件名,outputlj是完整的文件导出路径及文件名,file_name是要操作文件的完整路径及文件名
convert 方法同理;这里执行不成功很有可能是php没有响应的执行权限
7.至此关于PPT转图片的基本操作流程及方法总结完毕,如有不完善,不细致的地方,还望多多指正
linux环境操作PPT转图片总结相关推荐
- linux环境用opencv读取图片,基于Linux下OpenCV的人脸识别模块设计
金笑雪 张琳琳 高丹 张黎 摘 要: 近年来,图像识别技术正在向更加直观.可靠的方向发展,其中人脸识别技术具有极高的研究价值,应用得也最为广泛.通过对Linux系统下OpenCV的研究,利用OpenC ...
- Linux环境—JPEG/JPG/PNG图片转换WEBP格式(二)
PHP源码编写 <?php /** * Use : 将JPEG/JPG/PNG 的图片转换为 WEBP 格式 * User: yKan_SF * Date: 2018-2-27 * Ti ...
- Linux平台PPT转图片(Python)
由于网站一般是展示PPT,想要在WEB上进行PPT展示且资源地址不在公网,一般只能通过PPT转化为图片,再由前端进行图片的展示. 由于项目部署环境都在Linux平台,所以需要进行Linux平台上PPT ...
- (超好用)linux/Windows环境下pdf转图片
前言:最近开发需要将pdf转图片,我用到两种方法进行转换 方法一: 通过BufferedImage进行pdf转换, 实现:Windows下正常转换,Linux下出现异常报错 展示效果:图片较模糊 Le ...
- zookeeper 单机和集群搭建(windows环境+linux环境)
文章目录 一.单机操作 1. 下载 2. 解压 3. 修改配置文件 4. 启动 二.集群操作 2.1. zoo.cfg添加集群配置 2.2. 在3台zk数据目录下面创建myid文件 2.3. 分别启动 ...
- linux开发板显示百叶窗图片,03Linux命令操作2
第一天 第一个小时嵌入式介绍,何为嵌入式,为什么学习嵌入式,嵌入式的发展前景,嵌入式的具体工作岗位以及薪资待遇如何. 第二个小时项目介绍 1.为什么需要项目的的沉淀,企业需要什么样的嵌入式开发人才 2 ...
- linux环境编程 学习,学习linux环境高级编程首先学习的是文件的操作。因为有.pdf...
学习linux环境高级编程首先学习的是文件的操作.因为有 学习 Linux 环境高级编程,首先学习的是文件的操作.因为有一句很有趣的话"Linux 下一切皆文件".所以掌握了文件操 ...
- linux环境C语言操作数据库
在实际应用中,我们不可能在命令行登录进数据库进行数据的查询.插入等操作,用户一般是使用一个界面良好的应用程序软件来对数据进行管理.为了方便应用程序的开发,MySQL提供了多种编程语言(C.perl.p ...
- linux下ppt转图片的方法
上篇介绍了windows上将ppt转换为图片的方法,但是在linux平台上确并无法使用,这里再介绍一下自己开发过程中使用的linux上ppt转图片的方法! 同样的,使用POI会有之前存在的清晰度以及内 ...
- Linux环境变量getenv setenv unsetenv操作
Linux环境变量getenv setenv unsetenv操作 在linux操作系统中,可以通过man来进行相关函数的查看 eg: man setenv 1.setenv 设置环境变量 //函数原 ...
最新文章
- python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发
- JSP与servlet之间的传值方式
- 视频技术详解:语音编解码技术演进和应用选型
- boost::hana::find用法的测试程序
- 建筑电气工程设计常用图形和文字符号_怎么看懂建筑电气工程图?用最直白方式,教你基础识图!超级详细...
- 配置opencv cmake
- Linux系统中的load average
- mysql 把一个字段的值_mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法...
- Netty实现原理分析
- 云原生势不可挡,华为云GaussDB加速企业数字化转型
- 熊猫Pivot_table()– DataFrame数据分析
- 大量用户升级iPhone3.0系统导致苹果服务器故障
- Dijkstra算法(matlab实现)
- 唐宇迪pytorch课程全部代码数据集github
- 局域网共享工具_Win10局域网共享开启工具
- 数据分析思维(极客时间)
- 数据恢复软件的原理是什么?
- 微信隐藏代码大全(来源于网络)
- 35岁,你要逃离北上广?
- SLAM中的边缘化舒尔补