上篇介绍了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转图片的方法相关推荐

  1. linux下U盘的挂载方法

    标题 linux下U盘的挂载方法. #df -h 查看U盘的名称(/dev/sdb1) 在mnt下建立udisk目录(mkdir udisk) 挂载mount /dev/sdb1 /mnt/udisk ...

  2. centos下ppt转图片

    之前的blog<<Apache POI ppt转图片>> blog地址 介绍了centos下使用apache poi jar包ppt转图片的方法,经过大量的测试发现. 对off ...

  3. linux 抓图,关于Linux下的抓图软件和使用方法介绍

    Linux越来越受到人们的关注,使用的人也越来越多.Linux用户可以通过网络交流使用经验.介绍好的软件.在交流中,人们经常互相在网上贴张屏幕截图,使得相互之间的交流变得更加直接.容易.这里我介绍一些 ...

  4. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

  5. linux mysql 编码修改,Linux下修改MySQL编码的方法

    这篇文章主要为大家详细介绍了Linux下修改MySQL编码的方法,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧! 默认登录mysql之后可以通过SH ...

  6. linux下svn重新定位的方法

    linux下重新定位SVN URL方法: 如果更换了SVN服务器,就需要重新定位,指向新的SVN URL. 重新定位命令:svn switch --relocate 原svn地址 新svn地址 如何查 ...

  7. Linux下的find的使用方法

    Linux下的find的使用方法 一.通过文件修改时间查询 1.查找5分钟前的文件 二.通过文件权限查找 1.创建不同权限文件夹 2.查找其他人有写的文件夹 3.查找拥有人.拥有组.其他人都有写权限文 ...

  8. linux c++ 程序运行时间,总结UNIX/LINUX下C++程序计时的方法

    前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序 ...

  9. kill掉多个进程linux中的sudo,linux下批量kill进程的方法

    --kill某个用户下的所有进程(用户为test) --pkill # pkill -u test --killall # killall -u test --ps # ps -ef | grep t ...

最新文章

  1. 科普| 3D视觉技术正在改变我们的生活
  2. The Innovation | Volume 2 Issue 4 正式出版
  3. “十四五”大数据产业发展锚定3万亿目标
  4. WINDOWS SERVER 2003从入门到精通之“域控制器安全策略”打开错误的解决方法
  5. python实现WebsocketServer 服务端
  6. Leaflet中使用Leaflet.Polyline.SnakeAnim插件实现水流模拟效果
  7. 被吹的神乎其神的Python到底都能干什么
  8. php 命令行 循环,Linux_批处理的循环效果脚本,第一次运行 执行命令工A 第 - phpStudy...
  9. Good Bye 2016 //智商再次下线,边界爆炸.....
  10. EditPlus软件的安装与配置
  11. socket -- epoll模型
  12. php手机号批量分类,一个非常好的php实现手机号归属地查询接口类
  13. java和3d建模_基于Java3D技术和Swing技术的3D建模开发
  14. 七个基本量纲_国际单位制中七个基本物理量
  15. 直接管理和维护计算机系统的程序称为,全国2008年04月自学考试计算机原理试题及答案.doc...
  16. Twitter注册如何做到ip防关联
  17. 电脑上照片如何压缩大小?怎么把照片在线压缩?
  18. MySQL DBA的修炼与未来
  19. 纯css控制文字显示隐藏
  20. DirectX12_入门之三角形

热门文章

  1. mux decoder selector详解
  2. Pearson correlation coefficient与Cosine Similarity的区别
  3. STM32 阿里云MQTT esp8266 AT命令
  4. [ubuntu]关闭/打开笔记本电脑触控板
  5. Java面向对象学习:遥控器
  6. linux发挥显卡性能,Sandy Bridge集成显卡总算支持Linux 开源性能实测
  7. Nature | 基于细菌构建具有类真核细胞结构和功能的人工细胞
  8. 计算机视觉 | 1. 一切的基础: 灰度图像 (读取,转换,像素定位)
  9. 前端工程师必备的Nginx知识
  10. android修改文件名,android 修改文件名称