试用版:springboot集成pageoffice实现word在线预览可编辑
1.下载pageoffice相关jar包
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId><version>2.1.3.RELEASE</version>
</dependency>
<dependency><groupId>com.zhuozhengsoft</groupId><artifactId>pageoffice</artifactId><scope>system</scope><systemPath>本地路径/apache-maven-3.6.0/lib/aliyun/org/pageoffice/pageoffice4.5.0.10.jar</systemPath>
</dependency>
注意:pageoffice的jar包可在官方网站上下载的zip包中找到,再放到本地
2.建立controller类,粘贴一下代码
package com.demo.worddemo.cn;import com.zhuozhengsoft.pageoffice.FileSaver;
import com.zhuozhengsoft.pageoffice.OpenModeType;
import com.zhuozhengsoft.pageoffice.PageOfficeCtrl;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@RestController
public class WordController {@Value("${posyspath}")private String poSysPath;@Value("${popassword}")private String poPassWord;@RequestMapping("/home")public String getHome(){return "hello";}// 第一步:转换器直接注入
// @Autowired
// private DocumentConverter converter;@Resourceprivate HttpServletResponse response;/** 第二种方案。pageoffice服务* 添加PageOffice的服务器端授权程序Servlet(必须)* @return*/@Beanpublic ServletRegistrationBean servletRegistrationBean() {com.zhuozhengsoft.pageoffice.poserver.Server poserver = new com.zhuozhengsoft.pageoffice.poserver.Server();//设置PageOffice注册成功后,license.lic文件存放的目录poserver.setSysPath(poSysPath);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;//}@RequestMapping(value="/word", method= RequestMethod.GET)public ModelAndView showWord(HttpServletRequest request, Map<String,Object> map){//--- PageOffice的调用代码 开始 -----PageOfficeCtrl poCtrl=new PageOfficeCtrl(request);poCtrl.setServerPage("/poserver.zz");//设置授权程序servletpoCtrl.addCustomToolButton("保存","Save",1); //添加自定义按钮poCtrl.setSaveFilePage("/save");//设置保存的actionpoCtrl.webOpen("d:\\test.doc", OpenModeType.docAdmin,"张三");map.put("pageoffice",poCtrl.getHtmlCode("PageOfficeCtrl1"));//--- PageOffice的调用代码 结束 -----ModelAndView mv = new ModelAndView("Word");return mv;}@RequestMapping(value="/index", method=RequestMethod.GET)public ModelAndView showIndex(){ModelAndView mv = new ModelAndView("Index");return mv;}@RequestMapping("/save")public void saveFile(HttpServletRequest request, HttpServletResponse response){FileSaver fs = new FileSaver(request, response);fs.saveToFile("e:\\" + fs.getFileName());fs.close();}}
注:其中所涉及的本地路径更改为自己的本地路径。
3.在application.properties中添加
posyspath=d:/lic/
popassword=111111
注:license.lic,此文件在项目启动后,访问index页面后,点击打开文件,会提示安装客户端pageoffice(这里的客户端是集成到后台jar中的,不联网可下载),客户端第一次访问需注册,注册后会自动生成license.lic到指定目录下。实际部署到服务器时。路径可配置到recource下面。如图
4.在resource下建立template包
1.建立index.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"><head><title>Index</title><script type="text/javascript" src="jquery.min.js"></script><script type="text/javascript" src="pageoffice.js" id="po_js_main"></script></head><body><h1 th:inline="text">PageOffice 集成效果演示</h1><a href="javascript:POBrowser.openWindowModeless('/word','width=1200px;height=800px;');">打开文件 </a></body>
</html>
2.建立word.html
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="pageoffice.js" id="po_js_main"></script><div style="width:1000px;height:700px;" th:utext="${pageoffice}">nihao </div>
<script type="text/javascript">function Save() {document.getElementById("PageOfficeCtrl1").WebSave();}
</script><a href="javascript:POBrowser.openWindowModeless('/word','width=1200px;height=800px;');">打开文件</a>
此时。demo完成,即可正常启动项目:访问路径:http://localhost:8765/index 端口可自行更改
问题1:没有license.lic文件
下载此文件。解压后,将Samples4文件放到Tomcat的webapp下正常启动。按照说明正常访问并注册。则访问http://localhost:8080/Samples4/poserver.zz 此路径即可显示license的位置
问题2:没有可用的办公软件
pageoffice对客户端要求较高。客户端需安装激活版的通用office,不支持电脑自带的office365。
问题3:想要更快的创建demo方式,源码在哪里?
http://www.zhuozhengsoft.com/dowm/
如有其他问题可以留言提问,如需要相关包,请留下邮箱。
试用版:springboot集成pageoffice实现word在线预览可编辑相关推荐
- 前端如何实现 Word 在线预览
前端如何实现 Word 在线预览 在前端实现 Word 文件在线预览时,常用的方法包括使用第三方库.浏览器插件.后端服务器.在线文档转换平台等,具体如下: 使用第三方库 常见的前端第三方库包括 Mam ...
- office在线预览 word在线预览 .net在线预览 文件在线浏览接口
office在线预览 word在线预览 excel在线预览 文件浏览接口服务 支持移动端浏览,只要能使用浏览器上网都可以使用,不需要安装任何第三方工具. 1.word在线预览 excel在线预览,.n ...
- WEB前端实现在线预览、编辑Office文档
这篇文章介绍如何在web前端引入JS插件实现在线预览.编辑Office文档. 使用插件:Spire.Cloud在线Office文档编辑器(官网:冰蓝科技在线编辑) 重点:该方案仅需浏览器支持HTML5 ...
- spring boot2.X word在线预览 pdf.js
最近公司项目需求需要在线预览word文档,并且不能在在线下载和编辑.在此记录我是如何做的. 针对word的在线预览网上大多给的解决方案就是先把word文件转成pdf,然后通过pdf.js在线预览pdf ...
- 实现word在线预览 有php的写法 也有插件似
1 <?php2 //header("Content-type:text/html;charset=utf-8");3 //word转html 展示4 $lj=$_GET[' ...
- java word在线预览_java实现word转pdf在线预览(前端使用PDF.js;后端使用openoffice、aspose)...
背景 之前一直是用户点击下载word文件到本地,然后使用office或者wps打开.需求优化,要实现可以直接在线预览,无需下载到本地然后再打开. 随后开始上网找资料,网上资料一大堆,方案也各有不同,大 ...
- SpringBoot 实现 Office 各种格式在线预览(详细教程,包教包会)
点击关注公众号,实用技术文章及时了解 项目特性 部署过程 2.1 二进制下载部署文件进行部署 2.2 docker方式部署 2.3 通过源代码编绎部署 部分配置说明 3.1 server.contex ...
- aspose转pdf横版_Aspose实现文件转PDF在线预览及水印功能
文件转换及在线预览 因为项目是做OA这一块,有很多附件需要实现在线预览附件,在网上也看了很多相关的资料.主要实现方式就是 (openoffice+swftools+flexpaper)和(aspose ...
- springboot整合pdf.js实现在线预览pdf文件
今天在项目中实现pdf在线预览的功能的如图, 通过百度,查询合适的方法,最为简单的的是通过pdf.js的插件在前台展示.本以为是挺容易实现的,但都有莫名其妙的错误. 第一步:下载源码https://g ...
- 团队协作三、OnlyOffice 实现文件在线预览和编辑
文档在线预览,最好都安装到本机,成功的机率大 对于大多数开源的网盘软件来说,文档(docx,doc,txt,pdf,xls等)不能在线预览,给网盘软件的使用带来了不变. 插件下载地址 https:// ...
最新文章
- 数据库的介绍、分类、作用和特点
- 初探 Unix 操作系统
- java线程 打印_Java多线程实战之交叉打印的两种方法
- asp.net日期显示 问题
- 遭银行账号诈骗最快最有效自救法
- mysql查看系统可用字符集_MySQL查看所有可用的字符集
- Java的transient关键字
- jQuery.Autocomplete 自动完成
- 使用el-checkbox实现全选,点击失效没有反应 1
- 远程控制工具ToDesk测评
- win11提示windows许可证即将过期
- discuz模板修改html,Discuz 修改门户的模板——静态页面套用(动态页写死方法以更新)...
- 为什么趁年轻就应该去创业?
- zencart 模板设计
- Redux学习篇:关于store.subscribe()监听方法与取消监听的认识
- android 圆形头像方案,android圆形头像实现
- type Vector takes type parameters
- *p++ 和 *++p
- Unity隐藏目录和隐藏文件
- 关于构建工具网站的摸索以及记录
热门文章
- 在12306网站上如何可以选择上中下铺
- 三菱plc232数据线驱动下载_三菱FX系列PLC没有编程电缆,通过DIY232串口下载程序...
- 正定矩阵、正定矩阵与极值的关系、黑塞矩阵、牛顿法
- USB协议架构及驱动架构
- matlab2017a安装出现license checkout failed Error-8
- 编译时Collected errors
- 嵌入式Linux--使用libpng库解码png图片
- 地图上分成一块一块区域 高德地图_高德地图行政区域划分问题有点搞不懂
- Java开源 J2EE框架(一)
- java读取局域网种大华摄像机信息