java 集成pageoffice_springboot 集成 pageoffice,实现在线打开,编辑,保存 word 文件...

一. 构建Sping Boot + Thymeleaf框架的项目(不再详述):

新建一个maven project项目:springboot-pageoffice-demo。

修改pom.xml配置,把项目配置为Spring Boot项目;

配置Thymeleaf:

添加Thymeleaf依赖,并在application.properties文件中添加Thymeleaf的配置;

二.集成PageOffice

1.官网http://www.zhuozhengsoft.com/dowm/下载一下完整的试用程序包,或者springboot 的示例。

2.

添加PageOffice的jar包(pageoffice4.5.0.12.jar)到本地Maven仓库,该jar位 于demo的“集成文件”夹中

--------------------------------------------------------------

1拷贝pageoffice4.5.0.12.jar到D盘根目录;

2启动CMD命令窗口,输入:D:回车,切换到D盘根目录下;

3输入:mvn install:install-file -DgroupId=com.zhuozhengsoft -DartifactId=pageoffice -Dversion=4.5.0.12 -Dpackaging=jar -Dfile=pageoffice4.5.0.12.jar

3.在pom.xml中添加PageOffice的依赖:

org.xerial

sqlite-jdbc

3.7.2

com.zhuozhengsoft

pageoffice

4.5.0.12

4.在application.properties文件中添加两个自定义参数配置,posyspath:指定一个磁盘目录用来存放PageOffice注册成功之后生成的license.lic文件;popassword:设置PageOffice自带印章管理程序的登录密码;以备给PageOffice的服务器端Servlet程序使用:

########################################################

###PageOffice

########################################################

posyspath=d:/lic/

popassword=111111

5.在DemoController中添加代码获取上一步在application.properties中定义的两个参数:

@Value("${posyspath}")

private String poSysPath;

@Value("${popassword}")

private String poPassWord;

6.在DemoController中添加PageOffice的Servlet的注册代码:

/**

* 添加PageOffice的服务器端授权程序Servlet(必须)

* @return

*/

@Bean

public 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("/sealsetup.exe");

return srb;//

}

/**

* 添加印章管理程序Servlet(可选)

* @return

*/

@Bean

public ServletRegistrationBean servletRegistrationBean2() {

com.zhuozhengsoft.pageoffice.poserver.AdminSeal adminSeal = new com.zhuozhengsoft.pageoffice.poserver.AdminSeal();

adminSeal.setAdminPassword(poPassWord);//设置印章管理员admin的登录密码

//设置印章数据库文件poseal.db存放目录,该文件在当前demo的“集成文件”夹中

adminSeal.setSysPath(poSysPath);

ServletRegistrationBean srb = new ServletRegistrationBean(adminSeal);

srb.addUrlMappings("/adminseal.zz");

srb.addUrlMappings("/sealimage.zz");

srb.addUrlMappings("/loginseal.zz");

return srb;//

}

7.在DemoController的showWord方法中添加创建PageOfficeCtrl对象的代码,其中WebOpen方法的第一个参数是office文件在服务器端的磁盘路径,在此demo中暂时使用常量:d:\\test.doc(在d盘根目录下准备一个test.doc文件(不要用0字节的文件)以备测试)

@RequestMapping(value="/word", method=RequestMethod.GET)

public ModelAndView showWord(HttpServletRequest request, Map map){

//--- PageOffice的调用代码 开始 -----

PageOfficeCtrl poCtrl=new PageOfficeCtrl(request);

poCtrl.setServerPage("/poserver.zz");//设置授权程序servlet

poCtrl.addCustomToolButton("保存","Save",1); //添加自定义按钮

poCtrl.setSaveFilePage("/save");//设置保存的action

poCtrl.webOpen("d:\\test.doc",OpenModeType.docAdmin,"张三");

map.put("pageoffice",poCtrl.getHtmlCode("PageOfficeCtrl1"));

//--- PageOffice的调用代码 结束 -----

ModelAndView mv = new ModelAndView("Word");

return mv;

}

8.编写index.html页面

Chrome浏览器从42版本开始默认不启动插件,从45版本开始彻底关闭插件调用接口,网页中的任何插件(包括网银插件)都无法在Chrome浏览器中运行。FireFox浏览器在2016年年初发布消息,到2016年年底Firefox浏览器将关闭插件调用接口,所以从Firefox的52版本开始所有网页中的插件也都不能运行了。PageOfficeV4.0则采用POBrowser技术完美解决了这个问题,Chrome和Firefox都可以继续运行PageOffice进行在线Office文档操作。

(1)

注意:引用pageoffice.js文件的时候,id属性必须写。

Pageoffice.js文件和jquery.min.js在后端项目的根目录下。

(2)添加打开文档的js代码:

最简单的打开和保存

9.在Word.html中添加PageOffice客户端控件所在的div和js代码:

function Save() {

document.getElementById("PageOfficeCtrl1").WebSave();

}

10.在DemoController添加saveFile方法,用来接收PageOffice客户端上传的文件流并保存到服务器指定磁盘目录,在此demo中暂时使用常量:d:\\

@RequestMapping("/save")

public void saveFile(HttpServletRequest request, HttpServletResponse response){

FileSaver fs = new FileSaver(request, response);

fs.saveToFile("d:\\" + fs.getFileName());

fs.close();

运行demo项目,访问:http://localhost:8080/word即可在线打开、编辑和保存文件。

提示注册时,使用PageOffice V4.0 专业版试用序列号:CA1XB-MF7Y-12ST-PSBP2 注册即可。

你可能感兴趣的:(java,集成pageoffice)