springboot 集成 pageoffice,实如今线打开,编辑,保存 word 文件

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

  1.  新建一个maven project项目:springboot-pageoffice-demo。
  2. 修改pom.xml配置,把项目配置为Spring Boot项目;
  3. 配置Thymeleaf:

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

二.集成PageOfficejava

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

    2.web

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

--------------------------------------------------------------sql

1 拷贝pageoffice4.5.0.12.jarD盘根目录;数据库

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的依赖:

<!-- 添加Sqlite依赖(可选:若是不须要使用印章功能的话,不须要添加此依赖)-->

<dependency>

    <groupId>org.xerial</groupId>

    <artifactId>sqlite-jdbc</artifactId>

    <version>3.7.2</version>

</dependency>

<!-- 添加PageOffice依赖(必须),添加依赖以前首先得将pageoffice4.5.0.12.jar添加到本地maven仓库,详细步骤见下表-->

<dependency>

    <groupId>com.zhuozhengsoft</groupId>

    <artifactId>pageoffice</artifactId>

    <version>4.5.0.12</version>

</dependency>

 

        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<String,Object> 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)

<!-- 引用后端项目中的jquery.min.js和pageoffice.js文件 -->

<script type="text/javascript"  src="http://localhost:8080/jquery.min.js"></script>

<script type="text/javascript"  src=http://localhost:8080/pageoffice.js id="po_js_main"></script>

 

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

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

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

<a href="javascript:POBrowser.openWindowModeless('http://localhost:8080/word','width=1200px;height=800px;');">最简单的打开和保存</a>

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

<div style="width:1000px;height:700px;" th:utext="${pageoffice}"> </div>

        <script type="text/javascript">

             function Save() {

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

            }

  </script>

 

        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();

   

  1. 运行demo项目,访问:http://localhost:8080/word便可在线打开、编辑和保存文件。
  2. 提示注册时,使用PageOffice V4.0 专业版试用序列号:CA1XB-MF7Y-12ST-PSBP2 注册便可。

相关文章
相关标签/搜索