项目中有时会需要在线打开PPT并编辑保存。pageoffice可以完美调用本地office在线打开ppt文件,跟本地打开效果一样。还可以在线打开word、excel、pdf等文件,在线办公系统需要用到的功能基本都可以实现,效果还是挺不错的,集成也很简单。

一、环境

前端:vue2

后端:springboot

二、集成步骤

1、后端pom.xml中导入依赖

    <!--Pageoffice的jar已经打包到maven中央仓库,用下面的方式即可引用 --><dependency><groupId>com.zhuozhengsoft</groupId><artifactId>pageoffice</artifactId><version>5.4.0.3</version></dependency>

2、启动类中配置pageoffice的授权程序bean(这些都要在权限框架中设置允许访问,不能拦截)

@Beanpublic ServletRegistrationBean pageofficeRegistrationBean() {com.zhuozhengsoft.pageoffice.poserver.Server poserver = new com.zhuozhengsoft.pageoffice.poserver.Server();poserver.setSysPath("D:\\lic");//设置PageOffice注册成功后,license.lic文件存放的目录ServletRegistrationBean srb = new ServletRegistrationBean(poserver);srb.addUrlMappings("/poserver.zz");srb.addUrlMappings("/posetup.exe");srb.addUrlMappings("/pageoffice.js");srb.addUrlMappings("/jquery.min.js");srb.addUrlMappings("/pobstyle.css");srb.addUrlMappings("/sealsetup.exe");return srb;//}

3、前端vue的index.html页面引用后端根目录下的pageoffice.js

 <!--引用后端项目pageoffice_demo项目根目录下pageoffice.js文件,一定要在vue项目的index.html文件中引用此文件---><script type="text/javascript" src="http://localhost:8086/pageoffice_demo/pageoffice.js"></script>

4、配置代理vue.config.js(transpileDependencies是为了解决ie和vue的兼容)

module.exports = {devServer: {proxy: {'/api': {target: 'http://localhost:8086/pageoffice_demo', //"/api"对应后端项目"http://localhost:8086/pageoffice_demo"地址 ws: true,changeOrigin: true, // 允许跨域pathRewrite: {'^/api': ''   // 标识替换,使用 '/api' 代替真实的接口地址}}}},publicPath:"/",//node_modules里的依赖默认是不会编译的,会导致es6语法在ie中的语法报错,根据报错找到对应的文件夹指定该文件夹或文件需要编译.transpileDependencies: ["sockjs-client"]}

5、在index.vue页面添加按钮调用POBrowser.openWindowModeless打开OpenPPT.vue页面,通过axios请求后台打开ppt文件的接口

index.vue页面

<template><div class="Word"><input type="button" value="打开ppt" @click="openPPT()"/></div>
</template><script>const axios=require('axios');export default{name: 'Word',data(){return {}},methods:{      openPPT() {//第一个参数是路由POBrowser.openWindowModeless('OpenPPT' , 'width=1200px;height=800px;'); }},mounted: function(){}}
</script>

OpenPPT.vue

<template><div class="PPT"><div style="height: 800px; width: auto" v-html="poHtmlCode" /></div>
</template><script>const axios=require('axios');export default{name: 'PPT',data(){return {poHtmlCode: '',}},created: function(){//由于vue中的axios拦截器给请求加token都得是ajax请求,所以这里必须是axios方式去请求后台打开文件的controlleraxios.post("/api/SimplePPT/PPT").then((response) => {this.poHtmlCode = response.data;}).catch(function (err) {console.log(err)})},methods:{//控件中的一些常用方法都在这里调用,比如保存,打印等等Save(){document.getElementById("PageOfficeCtrl1").WebSave();},Close() {window.external.close();}},mounted: function(){// 将vue中的方法赋值给windowwindow.Save = this.Save;window.Close = this.Close;// 国产操作系统需要加载WPS插件 ppt文件是'x-wpp'if(navigator.userAgent.toLowerCase().indexOf("linux")>0){setTimeout(()=>document.getElementById('PageOfficeCtrl1').load('PageOfficeCtrl1','x-wpp','59'),1000);}}}
</script>

6、后端打开打开ppt文件的controller,这块打开ppt用的是普通编辑模式,webopen第二个参数。还有另外一个只读模式,根据自己的需求选择

@RestController
@RequestMapping(value ="/SimplePPT")
public class SimplePPTController {//获取doc目录的磁盘路径private String dir = GetDirPathUtil.getDirPath() + "static/doc/";@RequestMapping(value ="/PPT")@ResponseBodypublic String showPPT(HttpServletRequest request) {PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);poCtrl.setServerPage("/api/poserver.zz");//设置服务页面//添加自定义按钮poCtrl.addCustomToolButton("保存", "Save", 1);poCtrl.addCustomToolButton("关闭", "Close", 21);//设置保存页面poCtrl.setSaveFilePage("/api/SimplePPT/save");//设置处理文件保存的请求方法//打开Word文档poCtrl.webOpen("D:\\doc\\SimplePPT\\test.ppt", OpenModeType.pptNormalEdit, "张三");return poCtrl.getHtmlCode("PageOfficeCtrl1");}@RequestMapping("save")public void save(HttpServletRequest request, HttpServletResponse response) {FileSaver fs = new FileSaver(request, response);fs.saveToFile("D:\\doc\\SimplePPT\\" + fs.getFileName());fs.close();}}

三、最后效果

右上角还可以选择全屏

Java实现在线打开编辑保存PPT相关推荐

  1. Java开发在线打开编辑保存Word文件(支持多浏览器)

    Java调用PageOffice实现在线编辑保存Word文件(以jsp调用为例,支持SSM.SSH.SpringMVC等流行框架) 1. 下载PageOffice开发包:http://www.zhuo ...

  2. java开发在线打开编辑保存word文件

    Java调用logo是"P"图标的第三方插件,实现在线编辑保存Word文件(以jsp调用为例,支持SSM.SSH.SpringMVC等流行框架) 工具/原料 Eclipse或MyE ...

  3. pageOffice插件 springboot实现服务器上Word文档在线打开编辑保存

    pageOffice插件 springboot实现服务器上Word文档在线打开编辑保存 需求: 在oa系统上,想实现在线,服务器上doc,docx文档,在web打开,编辑.编辑后,可以再同步保存到服务 ...

  4. C#在线打开编辑保存Excel文件[pageoffice]

    在项目开发过程中,经常会涉及到生成Excel报表,但往往系统只能通过后台生成Excel报表并保存到服务器上,若想在系统中打开Excel文件并进行编辑保存,有些人可能就没有思路了.因此,为了实现Exce ...

  5. 新版谷歌Chrome取消对PPAPI插件支持后,浏览器网页打开编辑保存微软Office、金山WPS文档解决方案

    最近陆续看到一些大学发布公告,谷歌Chrome取消了对PPAPI插件支持,导致某些在线Office厂家产品将无法在谷歌Chrome107及以上版本运行,被迫更换360浏览器或者使用低版本Chrome浏 ...

  6. Java在线打开编辑PPT文档

    前言: 在我们的项目中有时候会遇到在线打开PPT文档的需求,这个需求看似很简单,只是将每一页的内容放在网页上浏览一下.可是实现起来又无从下手.其实它是一定会用到微软的接口的,要不然怎么让程序识别渲染P ...

  7. 谷歌Chrome浏览器内直接打开编辑保存 Word、Excel、PPT 文档,可离线部署!

    谷歌Chrome经过开发团队不断优化,凭借运行界面简单,打开速度最快及扩展插件众多,Chrome已经成为了世界上最受欢迎的浏览器.不过有一点非常可惜,由于微软Office不是开源程序,所以Chrome ...

  8. Java集成PageOffice在线打开编辑word文件 - Spring Boot

    开发环境:JDK1.8.Eclipse.Sping Boot + Thymeleaf框架. 一. 构建Sping Boot + Thymeleaf框架的项目(不再详述): 1. 新建一个maven p ...

  9. java office 集成开发_[转载]Java集成PageOffice在线打开编辑word文件 - Spring Boot

    开发环境:JDK1.8.Eclipse.Sping Boot + Thymeleaf框架. 一. 构建Sping Boot + Thymeleaf框架的项目(不再详述): 1. 新建一个maven p ...

最新文章

  1. eclipse 源码设置UTF-8 (eclipse可以为JSP HTML 等各种文件不同编码格式设置) 在windows - preference- general-workspace
  2. kindeditor java 上传图片_java中KindEditor本地图片上传与上传失败问题
  3. windows下的eclipse运行hdfs程序时报错 (null) entry in command string: null chmod 0644【笔记自用】
  4. 厉害了!SpringBoot是如何动起来的!
  5. 博弈入门(思想)HDkiki‘s game;
  6. python 局域网主机扫描_python扫描局域网主机名
  7. C++:加载图片资源
  8. 美国一鹦鹉趁主人不在家上网购物:买的都是水果蔬菜
  9. 对称二叉树--深度遍历与广度遍历
  10. python字符串格式化 说明符顺序_python实践分享:格式化字符串时使用.format方式还是“%”...
  11. [php基础]Mysql日期函数:日期时间格式转换函数详解
  12. android adb login,adb
  13. 农大计算机工程,肖德琴-华南农业大学计算机科学与工程系
  14. Unity2018发布webgl视频无法播放
  15. Java中进入wait状态的线程被唤醒后会接着上次执行的地方往下执行还是会重新执行临界区的代码
  16. java根据某天获取当前周的日期
  17. 亲身试验之后,我差点被微博上的兼职广告骗到三和
  18. HTML5+CSS3小实例:手风琴式加载动画
  19. centos 7.x 更改 ipv6、numa、thp、io scheduler
  20. 74HC04(反相器)和74HC14(反相器、施密特触发器)的具体区别详解

热门文章

  1. PLS回归 (OLS)最小二乘法 PCA) 偏最小二乘法 (PLS) SIMPLS算法 20200723
  2. 防火墙双机热备配置实例(三)
  3. 中级软件设计师必考题及解题技巧
  4. 五个好用的PDF软件推荐!
  5. -- Could NOT find GFlags (missing: GFLAGS_INCLUDE_DIR GFLAGS_LIBRARY)
  6. MATLAB调用工业相机读取图像数据
  7. Hive 通过关闭CBO (Cost based Optimizer) 来优化特定的SQL执行
  8. 震惊!深度揭秘互联网络!!!
  9. 遗传算法应用场景(制造业)总结
  10. 记一次,oracle pdb数据库配置