pageOffice插件 springboot实现服务器上Word文档在线打开编辑保存
需求:
在oa系统上,想实现在线,服务器上doc,docx文档,在web打开,编辑。编辑后,可以再同步保存到服务器端。
开发环境:
java springboot,thymeleaf
服务器环境:
无特殊要求,能运行java虚拟机即可 ,服务器上有固定磁盘放word文档。方便pageoffice插件在线打开。
客户端环境 :
win7 win8 win10 win11 麒麟7 麒麟10 统信
参考教程
https://gitee.com/pageoffice/springboot-pageoffice
具体 集成步骤
后端 :
- 在您项目的pom.xml中通过下面的代码引入PageOffice依赖。
<dependency>
<groupId>com.zhuozhengsoft</groupId>
<artifactId>pageoffice</artifactId>
<version>5.3.0.3</version>
</dependency>
- 在您项目的启动类Application类中配置如下代码。
@Bean
public ServletRegistrationBean pageofficeRegistrationBean() {
com.zhuozhengsoft.pageoffice.poserver.Server poserver = new com.zhuozhengsoft.pageoffice.poserver.Server();
/**如果当前项目是打成jar或者war包运行,强烈建议将license的路径更换成某个固定的绝对路径下,不要放当前项目文件夹下,为了防止每次重新发布项目导致license丢失问题。
* 比如windows服务器下:D:/pageoffice,linux服务器下:/root/pageoffice
*/
//设置PageOffice注册成功后,license.lic文件存放的目录
poserver.setSysPath(poSysPath);//poSysPath可以在application.properties这个文件中配置,也可以直设置文件夹路径,比如:poserver.setSysPath("D:/pageoffice");
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;
}
- 新建Controller并调用PageOffice,例如:
public class PageOfficeController {
@RequestMapping(value = "/Word", method = RequestMethod.GET)
public ModelAndView showWord(HttpServletRequest request) {
PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
poCtrl.setServerPage(request.getContextPath() + "/poserver.zz");//设置服务页面
poCtrl.webOpen("/doc/test.doc", OpenModeType.docNormalEdit, "张三");
request.setAttribute("pageoffice", poCtrl.getHtmlCode("PageOfficeCtrl1"));
ModelAndView mv = new ModelAndView("Word.html");
return mv;
}
}
- 新建View页面,例如:Word.html(PageOfficeCtroller返回的View页面,用来嵌入PageOffice控件),PageOffice在View页面输出的代码如下:
<div th:utext="${pageoffice}">
- 在要打开文件的页面的head标签中先引用pageoffice.js文件后,再调POBrowser.openWindowModeless()方法打开文件,例如:
<!--pageoffice.js的引用路径来自于第2步的项目启动类中的配置路径,一般将此js配置到了当前项目的根目录下 -->
<script type="text/javascript" src="https://www.cnblogs.com/qq742655/archive/2023/02/10/pageoffice.js"></script>
<!--openWindowModeless()方法的第一个参数指向的url路径是指调用pageoffice打开文件的controller路径,比如下面的"SimpleWord/Word"-->
<a href="javascript:POBrowser.openWindowModeless('SimpleWord/Word', 'width=1050px;height=900px;');">最简单在线打开保存Word文件(URL地址方式)</a>
转载地址:https://blog.csdn.net/weixin_38757817/article/details/127787226