实现PPT的在线预览(动态,及转PDF)

公司的新需求,需要在网页上动态预览PPT,此处记录下,防止忘记。
之前在网上找了很多资料,比如:用POI 实现等,这里写下自己的实现方法

1.PPT 转PDF 实现在线预览

方法一、使用openoffice对PDF进行转换

1.准备工具
1.1 openoffice 4.1.7
windows及linux安装包
提取码: xaed
linux安装教程
1.2. PPT转PDF工具类

package com.dfjg.tiku.tikubnczhomeworkassignment.utils;
import org.jodconverter.OfficeDocumentConverter;
import org.jodconverter.office.DefaultOfficeManagerBuilder;
import org.jodconverter.office.OfficeException;
import org.jodconverter.office.OfficeManager;
import org.springframework.beans.factory.annotation.Value;import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.regex.Pattern;public final class Office2PDF {
//    private static final String PDFFilePath="D:/mongodbDownload/mongo_ppt/";private Office2PDF(){}/*** 将office格式的文件转为pdf* @param sourceFilePath 源文件路径* @return*/public static File openOfficeToPDF(String sourceFilePath){return office2pdf(sourceFilePath);}/*** 将office文档转换为pdf文档* @param sourceFilePath 原文件路径* @return*/public static File office2pdf(String sourceFilePath){OfficeManager officeManager = null;try{if(StringUtil.isEmpty(sourceFilePath)){//打印日志...return null;}File sourceFile = new File(sourceFilePath);if(!sourceFile.exists()){//打印日志...return null;}String after_convert_file_path = getAfterConverFilePath(sourceFilePath );//启动openOfficeofficeManager = getOfficeManager();OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);return convertFile(sourceFile,after_convert_file_path,sourceFilePath,converter);}catch (Exception e){e.printStackTrace();System.out.println("转换异常");}finally {if(officeManager != null){try {officeManager.stop();} catch (OfficeException e) {e.printStackTrace();}}}return null;}/*** 转换文件* @param sourceFile 原文件* @param after_convert_file_path 转换后存放位置* @param sourceFilePath 原文件路径* @param converter 转换器* @return*/public static File convertFile(File sourceFile,String after_convert_file_path,String sourceFilePath,OfficeDocumentConverter converter) throws OfficeException {File outputFile = new File(after_convert_file_path);if(!outputFile.getParentFile().exists()){//如果上级目录不存在也就是E:/pdfFile这个文件夹不存在则创建一个outputFile.getParentFile().mkdirs();}converter.convert(sourceFile,outputFile);return outputFile;}public static OfficeManager getOfficeManager(){DefaultOfficeManagerBuilder builder = new DefaultOfficeManagerBuilder();builder.setOfficeHome(getOfficeHome());OfficeManager officeManager = builder.build();try {officeManager.start();} catch (OfficeException e) {//打印日志System.out.println("start openOffice Fail!");e.printStackTrace();}return officeManager;}/*** 获取转换后文件存放的路径* @param sourceFilePath 源文件* @return*/public static String getAfterConverFilePath(String sourceFilePath){//截取源文件文件名String sourceFileName = sourceFilePath.substring(sourceFilePath.lastIndexOf("//") + 1);//转化文件名编码为ISO8859-1
//        try {
//            sourceFileName = new String(sourceFileName.getBytes("UTF-8"),"ISO8859-1");
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        }return  sourceFileName.replaceAll("\\."+FileUtil.getFileSuffix(sourceFileName),".pdf");}/*** 获取openOffice的安装目录* @return*/public static String getOfficeHome(){String osName = System.getProperty("os.name");if(Pattern.matches("Windows.*",osName)){return "C:/Program Files (x86)/OpenOffice 4";}else if(Pattern.matches("Linux.*",osName)){return "/opt/openoffice4";}else if (Pattern.matches("Mac.*",osName)){return "/Application/openOfficeSoft";}return null;}
}

此工具类 可以启动openoffice,不需要手动进行启动

方法二、使用kkfileviewt开源工具

此方法是我在找动态预览PPT的过程中发现的
官方网站
安装包
我看了他的官方网站,发现他也是基于OpenOffice或LiberOffice,将ppt转化为PDF或者图片进行在线预览。所以并没有进行尝试。
在我看来方法二和方法一的区别就是,方法一需要自己书写工具类,方法二只需要下载压缩包,启动脚本即可。

2实现PPT动态预览

至于动态预览PPT,我这边找到的方法是使用officeonline

1.调用微软的官方接口

官方效果

https://view.officeapps.live.com/op/view.aspx?src=http://video.ch9.ms/build/2011/slides/TOOL-532T_Sutter.pptx

注意点:
1.此处src需要跟的是你的文件地址,需要在公网的环境下(我这边采用的是花生壳进行内网穿透)
2.因为是调用的微软接口,所以有时会特别不稳定(比如我,正好在给领导演示的过程中他半天打不开~~~)领导让我找找别的办法。

2.自己搭建officeonline服务器

基于上述原因,可能会考虑这个方面,希望在公司现有的条件下可以接触到。
另外听说前端控件也可以实现动态预览,但是自己不大清楚,也没有找到相关的资料。

在springcloud使用中遇到的一些问题

比如文件的下载位置
有道云笔记

不足之处,请多多指教。

实现PPT的在线预览(动态,及转PDF)相关推荐

  1. 【板栗糖GIS】怎么将网络上只能在线预览文档另存为pdf(插件篇)

    怎么将网络上只能在线预览文档另存为pdf(插件篇) 目录 1.使用插件,这里推荐FireShot,好用免费 2.安装该插件的方式 3.打开在线预览文档的网址 4.点击插件-截取整个页面并且-另存为pd ...

  2. java word转pdf linux_java实现word转pdf在线预览(前端使用PDF.js;后端使用openoffice、aspose)...

    背景 之前一直是用户点击下载word文件到本地,然后使用office或者wps打开.需求优化,要实现可以直接在线预览,无需下载到本地然后再打开. 随后开始上网找资料,网上资料一大堆,方案也各有不同,大 ...

  3. java word在线预览_java实现word转pdf在线预览(前端使用PDF.js;后端使用openoffice、aspose)...

    背景 之前一直是用户点击下载word文件到本地,然后使用office或者wps打开.需求优化,要实现可以直接在线预览,无需下载到本地然后再打开. 随后开始上网找资料,网上资料一大堆,方案也各有不同,大 ...

  4. java实现文件下载,批量下载,文件在线预览,word转pdf,excel转pdf

    pdf,excel转word所需jar包  网盘链接  提取码:4gmw 目录 1.在resources下新建license.xml 2.文件转换工具类 3.文件下载 4.批量下载 5.在线打开文件 ...

  5. wps在线浏览 java_java实现word转pdf在线预览(前端使用PDF.js;后端使用openoffice、aspose)...

    varqtpath= '${qtpath}';varfileName= '${fileName}'; PDF.js viewer varDEFAULT_URL= "";//注意,删 ...

  6. 前端【vue】实现文档在线预览功能,在线预览pdf、word、xls、ppt等office文件

    前端江太公 前端实现文档在线预览功能 最直接的就是使用XDOC 文档云服务 XDOC可以实现预览以DataURI表示的DOC文档,此外XDOC还可以实现文本.带参数文本.html文本.json文本.公 ...

  7. 在线浏览pdf doc html,前端实现在线预览pdf、word、xls、ppt等文件

    1.前端实现pdf文件在线预览功能 方式一: 通过a标签href属性实现 pdf文件理论上可以在浏览器直接打开预览但是需要打开新页面.在仅仅是预览pdf文件且UI要求不高的情况下可以直接通过a标签hr ...

  8. 文件在线预览 图片 PDF Excel Word

    1.前端实现pdf文件在线预览功能 方式一.pdf文件理论上可以在浏览器直接打开预览但是需要打开新页面.在仅仅是预览pdf文件且UI要求不高的情况下可以直接通过a标签href属性实现预览 <ah ...

  9. Print2flash在.NET(C#)64位中的使用,即文档在线预览(转载)

    转:http://www.cnblogs.com/flowwind/p/3411106.html Print2flash在.NET(C#)中的使用,即文档在线预览 office文档(word,exce ...

最新文章

  1. oracle 树 向上查询,Oracle中显示树结构查询语句【子查父和父查子】
  2. Android XML使用的学习记录
  3. sublime text 3170 破解工具
  4. GDCM:gdcm::ASN1的测试程序
  5. rtsp协议_Chromium(3/5):rtsp客户端
  6. 哪些钱借了可以不还?
  7. 【洛谷P3389】【模板】高斯消元
  8. Java中竟有18种队列?45张图!安排
  9. 作者:刘大伟(1984-),男,博士,烟台中科网络技术研究所助理研究员。
  10. SpringBoot技术点细解
  11. GIMP教程 3 扭曲变换工具 (瘦脸 瘦腿)
  12. 创新大赛成就创业梦想 超30%入榜应用获投资意向
  13. 阿里巴巴2019实习生招聘正式启动
  14. 分析Padavan的代码一
  15. linux下ftp搭建流程
  16. 一键全自动Typora备份印象笔记的工具
  17. 忠实通物流信息管理系统
  18. 这是请程序员设计的楼梯吧
  19. DIY 3D打印机——【有啥用啥版】
  20. 【VM】权限不足,无法访问文件

热门文章

  1. 10_Linux ARM架构-离线部署 Docker + MongoDB-银河麒麟V10操作系统
  2. 数字电视音视频马赛克和不同步现象原因
  3. 人人都是心理学家,mbti等
  4. 13天Java进阶笔记-day7-异常、线程
  5. Win10最详细优化设置告别卡顿
  6. 小程序流量主怎么赚钱?
  7. 【图像检测】基于Itti模型实现图像显著性检测附matlab代码
  8. 单工 半双工 全双工的区别
  9. vue的登录页面功能实现
  10. 【Vue】qq浏览器打开空白