linux下ppt转图片的方法
上篇介绍了windows上将ppt转换为图片的方法,但是在linux平台上确并无法使用,这里再介绍一下自己开发过程中使用的linux上ppt转图片的方法!
同样的,使用POI会有之前存在的清晰度以及内存的问题,所以介绍另一种工具——libreoffice!
ppt等文件是office的,linux平台没有微软的office,所以我们可以使用其他的office处理软件来转化文件的格式!
这里介绍的方法就是通过libreoffice将ppt转换为pdf,然后在使用pdfbox将pdf转换为高清图片(其实转换为pdf已经可以在前端展示了)
1、安装libreoffice
可以参考官方网站的安装说明,说得很清楚,看清楚系统复制命令就可以(我这里从官网搬运一下)。
Debian/Ubuntu系统 (.deb包):
$ cd ~/下载/ /* 切换到安装包所在的目录 *
$ sudo dpkg -i ./LibreOffice_4.x.x_Linux_x86_deb/DEBS/*.deb /* 安装主安装程序的所有deb包 */
$ sudo dpkg -i ./LibreOffice_4.x.x_Linux_x86_deb_langpack_zh-CN/DEBS/*.deb /* 安装中文语言包中的所有deb包 */
$ sudo dpkg -i ./LibreOffice_4.x.x_Linux_x86_deb_helppack_zh-CN/DEBS/*.deb /* 安装中文离线帮助文件中的所有deb包 */
Fedora/SUSE/Mandriva系统 (.rpm包):
$ cd ~/下载/ /* 切换到安装包所在的目录 *
$ sudo yum install ./LibreOffice_4.x.x_Linux_x86_rpm/RPMS/*.rpm /* 安装主安装程序的所有rpm包 */
$ sudo yum install ./LibreOffice_4.x.x_Linux_x86_rpm_langpack_zh-CN/RPMS/*.rpm /* 安装中文语言包中的所有rpm包 */
$ sudo yum install ./LibreOffice_4.x.x_Linux_x86_rpm_helppack_zh-CN/RPMS/*.rpm /* 安装中文离线帮助文件中的所有rpm包 */
我安装的版本是6.4,大家可以自己选择!检验是否安装成功:
libreoffice6.4 -help
出现一堆说明就证明已经安装成功了,就可以愉快地进行各种格式转换了。
2、使用libreoffice将ppt转化为pdf
# filePath 是要进行转换的ppt文件路径
# outputPath 是转换完成后PDF文件输出的目录路径
libreoffice6.4 --convert-to pdf:writer_pdf_Export filePath --outdir outputPath
在转换的时候如果使用xshell监控服务器,那么会出现弹窗:Xmanager软件来处理X11转发需求…
这个烦人的弹窗如果我们不点,那么转换就不会开始。我们可以使用两种方法解决这个问题:
- 第一就是根据提示安装一个xmanage,弹窗自然会消失
- 第二种方法就是修改xshell的设置,不转发这种请求
3、使用pdfbox将转换好的pdf转换为图片
依赖:
<!--pdf 转图片支持--><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.1</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.0</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>jempbox</artifactId><version>1.8.11</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>xmpbox</artifactId><version>2.0.0</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>preflight</artifactId><version>2.0.0</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox-tools</artifactId><version>2.0.0</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.1</version></dependency>
工具类:
public class PptToImg {public static Integer pdfBoxConvert(String filePath,String outputPath) throws IOException {File outputDir = new File(outputPath);if (!outputDir.exists())outputDir.mkdirs();String type="png";//Loading an existing PDF documentFile file = new File(filePath);PDDocument doc = PDDocument.load(file);//Instantiating the PDFRenderer classPDFRenderer renderer = new PDFRenderer(doc);//Rendering an image from the PDF document//BufferedImage image = renderer.renderImage(0);//Writing the image to a fileint pageCount = doc.getNumberOfPages();for (int i = 0; i < pageCount; i++) {BufferedImage tempImage = renderer.renderImageWithDPI(i, 144); // Windows native DPI// BufferedImage srcImage = resize(image, 240, 240);//产生缩略图//ImageIO.write(tempImage, type, new File(outputPath+"\\"+(i+1)+"."+type));ImageIO.write(tempImage, type, new File(outputPath+"/"+(i+1)+"."+type));}//ImageIO.write(image, "JPEG", new File(outputPath));System.out.println("Image created");//Closing the documentdoc.close();return pageCount;}
}
直接调用工具类中的方法,然后传入对应的文件路径和输出路径就可以了。图片的效果也是很好的!
另外这个libreoffice可以将excle、word等各种类型也转换成pdf,所以有在网页预览的功能需求就可以使用这个工具转换成pdf,然后在前端展示!
linux下ppt转图片的方法相关推荐
- linux下U盘的挂载方法
标题 linux下U盘的挂载方法. #df -h 查看U盘的名称(/dev/sdb1) 在mnt下建立udisk目录(mkdir udisk) 挂载mount /dev/sdb1 /mnt/udisk ...
- centos下ppt转图片
之前的blog<<Apache POI ppt转图片>> blog地址 介绍了centos下使用apache poi jar包ppt转图片的方法,经过大量的测试发现. 对off ...
- linux 抓图,关于Linux下的抓图软件和使用方法介绍
Linux越来越受到人们的关注,使用的人也越来越多.Linux用户可以通过网络交流使用经验.介绍好的软件.在交流中,人们经常互相在网上贴张屏幕截图,使得相互之间的交流变得更加直接.容易.这里我介绍一些 ...
- linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...
- linux mysql 编码修改,Linux下修改MySQL编码的方法
这篇文章主要为大家详细介绍了Linux下修改MySQL编码的方法,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧! 默认登录mysql之后可以通过SH ...
- linux下svn重新定位的方法
linux下重新定位SVN URL方法: 如果更换了SVN服务器,就需要重新定位,指向新的SVN URL. 重新定位命令:svn switch --relocate 原svn地址 新svn地址 如何查 ...
- Linux下的find的使用方法
Linux下的find的使用方法 一.通过文件修改时间查询 1.查找5分钟前的文件 二.通过文件权限查找 1.创建不同权限文件夹 2.查找其他人有写的文件夹 3.查找拥有人.拥有组.其他人都有写权限文 ...
- linux c++ 程序运行时间,总结UNIX/LINUX下C++程序计时的方法
前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序 ...
- kill掉多个进程linux中的sudo,linux下批量kill进程的方法
--kill某个用户下的所有进程(用户为test) --pkill # pkill -u test --killall # killall -u test --ps # ps -ef | grep t ...
最新文章
- 科普| 3D视觉技术正在改变我们的生活
- The Innovation | Volume 2 Issue 4 正式出版
- “十四五”大数据产业发展锚定3万亿目标
- WINDOWS SERVER 2003从入门到精通之“域控制器安全策略”打开错误的解决方法
- python实现WebsocketServer 服务端
- Leaflet中使用Leaflet.Polyline.SnakeAnim插件实现水流模拟效果
- 被吹的神乎其神的Python到底都能干什么
- php 命令行 循环,Linux_批处理的循环效果脚本,第一次运行 执行命令工A 第 - phpStudy...
- Good Bye 2016 //智商再次下线,边界爆炸.....
- EditPlus软件的安装与配置
- socket -- epoll模型
- php手机号批量分类,一个非常好的php实现手机号归属地查询接口类
- java和3d建模_基于Java3D技术和Swing技术的3D建模开发
- 七个基本量纲_国际单位制中七个基本物理量
- 直接管理和维护计算机系统的程序称为,全国2008年04月自学考试计算机原理试题及答案.doc...
- Twitter注册如何做到ip防关联
- 电脑上照片如何压缩大小?怎么把照片在线压缩?
- MySQL DBA的修炼与未来
- 纯css控制文字显示隐藏
- DirectX12_入门之三角形
热门文章
- mux decoder selector详解
- Pearson correlation coefficient与Cosine Similarity的区别
- STM32 阿里云MQTT esp8266 AT命令
- [ubuntu]关闭/打开笔记本电脑触控板
- Java面向对象学习:遥控器
- linux发挥显卡性能,Sandy Bridge集成显卡总算支持Linux 开源性能实测
- Nature | 基于细菌构建具有类真核细胞结构和功能的人工细胞
- 计算机视觉 | 1. 一切的基础: 灰度图像 (读取,转换,像素定位)
- 前端工程师必备的Nginx知识
- android修改文件名,android 修改文件名称