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 註冊便可。

相關文章
相關標籤/搜索