集成pageOffice到springboot项目关键步骤
PageOffice(卓正软件)是国内常用的Web 在线 Office 文档编辑控件,用于 OA、政务、ERP 等 B/S 系统,在网页里直接打开、编辑、保存 Word/Excel/PPT,不需要下载上传文件,支持私有内网部署,文档数据保存在自己服务器。
核心能力:
- 在线编辑预览:网页直接打开 doc/docx、xls/xlsx、ppt;支持 WPS / 微软 Office 双后端;支持只读模式,可禁止复制、打印、另存下载。
- 公文 OA 常用:修订痕迹保留、手写批注圈阅、电子签章、模板套红。
- 模板填充:后端把数据库数据填入 Word/Excel 模板,支持直接导出 PDF。
- 并发锁:文档编辑独占锁,防止多人同时编辑冲突。
- 信创国产化:适配银河麒麟、统信 UOS;支持飞腾、鲲鹏、海光、龙芯 CPU 架构
下面是springboot项目的集成步骤
- 在pom.xml中添加PageOffice的依赖:
<!-- 添加PageOffice依赖(必须) --><dependency><groupId>com.zhuozhengsoft</groupId><artifactId>pageoffice</artifactId><version>5.1.0.1</version></dependency><!-- 添加Sqlite依赖(可选:如果不需要使用印章功能的话,不需要添加此依赖)--><dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.7.2</version></dependency>- 在Controller中添加PageOffice的Servlet的注册代码:
/** * 添加PageOffice的服务器端授权程序Servlet(必须) */@BeanpublicServletRegistrationBeanservletRegistrationBean(){com.zhuozhengsoft.pageoffice.poserver.Serverposerver=newcom.zhuozhengsoft.pageoffice.poserver.Server();//设置PageOffice注册成功后,license.lic文件存放的目录poserver.setSysPath("d:\\lic\\");ServletRegistrationBeansrb=newServletRegistrationBean(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");returnsrb;//}/** * 添加印章管理程序Servlet(可选) */@BeanpublicServletRegistrationBeanservletRegistrationBean2(){com.zhuozhengsoft.pageoffice.poserver.AdminSealadminSeal=newcom.zhuozhengsoft.pageoffice.poserver.AdminSeal();adminSeal.setAdminPassword("111111");//设置印章管理员admin的登录密码adminSeal.setSysPath("d:\\lic\\");//印章数据库文件poseal.db的存放目录ServletRegistrationBeansrb=newServletRegistrationBean(adminSeal);srb.addUrlMappings("/adminseal.zz");srb.addUrlMappings("/sealimage.zz");srb.addUrlMappings("/loginseal.zz");returnsrb;//}- 在Controller的方法(比如:showWord方法)中添加创建PageOfficeCtrl对象的代码,其中WebOpen方法的第一个参数是office文件在服务器端的磁盘路径(比如:d:\test.doc)
@RequestMapping(value="/word",method=RequestMethod.GET)publicModelAndViewshowWord(HttpServletRequestrequest,Map<String,Object>map){//--- PageOffice的调用代码 开始 -----PageOfficeCtrlpoCtrl=newPageOfficeCtrl(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的调用代码 结束 -----ModelAndViewmv=newModelAndView("Word");returnmv;}- 在视图页面(比如:Word.html)的div中添加PageOffice客户端控件的代码:
<divstyle="width:1000px;height:700px;">${pageoffice}</div>- 在Controller中添加保存文件的方法(比如:saveFile),用来接收PageOffice客户端上传的文件流并保存到服务器指定磁盘目录(比如:d:\)
@RequestMapping("/save")publicvoidsaveFile(HttpServletRequestrequest,HttpServletResponseresponse){FileSaverfs=newFileSaver(request,response);fs.saveToFile("d:\\"+fs.getFileName());fs.close();}在d盘根目录下创建一个lic文件夹,并准备一个test.doc文件(不要用0字节的文件)以备测试使用;
运行项目,用IE浏览器访问:http://localhost:8080/word即可在线打开、编辑和保存文件。