Springboot 項目集成 PageOffice V6 最簡單代碼

本文描述了PageOffice產品在Springboot項目中如何集成調用。(本示例使用了Thymeleaf模板引擎)

  1. 新建Springboot項目:pageoffice6-springboot2-simple

  2. 在您項目的pom.xml中通過下面的代碼引入PageOffice依賴。pageoffice.jar已發佈到Maven中央倉庫 (opens new window),建議使用最新版本。

如果使用Tomcat10及以上版本,使用下面的pom.xml配置

<dependency>
  <groupId>com.zhuozhengsoft</groupId>
  <artifactId>pageoffice</artifactId>
  <version>6.0.0.11</version>
</dependency>

如果使用Tomcat9及以下的版本,使用下面的pom.xml配置

<dependency>
  <groupId>com.zhuozhengsoft</groupId>
  <artifactId>pageoffice</artifactId>
  <version>6.0.0.11-javax</version>
</dependency>
  1. 新建一個pageoffice文件夾,用來存放PageOffice的系統文件(如license.lic、客戶端安裝包等),比如windows環境下創建:D:/pageoffice,linux環境下創建:/root/pageoffice

  2. 拷貝pageoffice客戶端安裝程序到上一步創建的pageoffice文件夾下。

  • 客戶端是windows環境:拷貝posetup_6.0.0.11.exe到pageoffice文件夾下;
  • 客戶端是國產操作系統環境:拷貝對應芯片的PageOffice客戶端deb安裝包到pageoffice文件夾下;

PageOffice客戶端安裝程序下載地址:https://gitee.com/pageoffice/pageoffice6-client/releases

  1. 打開springboot-back項目的配置文件application.properties,添加一個posyspath變量,值爲上一步創建的pageoffice文件夾的路徑
posyspath=D:/pageoffice
  1. 在您項目的啓動類Application類中添加一項@Bean配置,此爲PageOffice服務器端的必要配置,代碼如下:
@Value("${posyspath}")
private String poSysPath;

@Bean
public ServletRegistrationBean pageofficeRegistrationBean()  {
  com.zhuozhengsoft.pageoffice.poserver.Server poserver 
      						= new com.zhuozhengsoft.pageoffice.poserver.Server();
  poserver.setSysPath(poSysPath);//設置PageOffice註冊成功後,license.lic文件存放的目錄
    
  ServletRegistrationBean srb = new ServletRegistrationBean(poserver);
  srb.addUrlMappings("/poserver.zz");
  srb.addUrlMappings("/poclient");
  srb.addUrlMappings("/pageoffice.js");
  srb.addUrlMappings("/sealsetup.exe");
  return srb;
}
  1. 在D盤根目錄下準備一個有內容的test.docx文件,新建Controller並調用PageOffice在線打開此文件,例如SimpleWordController代碼如下:
@RestController
@RequestMapping(value = "/simpleWord")
public class SimpleWordController {

  @RequestMapping(value="/openFile")
  public String openFile(HttpServletRequest request) {
      PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
      poCtrl.setSaveFilePage("saveFile");
      //webOpen的第一個參數支持能夠輸出下載文件的Url相對地址或者文件在服務器上的磁盤路徑兩種方式
      //查看詳細,請在本站搜索“PageOffice屬性或方法中涉及到的URL路徑或磁盤路徑的說明”
      poCtrl.webOpen("D:\\test.docx", OpenModeType.docNormalEdit, "張三");
      request.setAttribute("poHtmlCode", poCtrl.getHtmlCode());
      return  "simpleWord";
  }

  @RequestMapping("/saveFile")
  public void saveFile(HttpServletRequest request, HttpServletResponse response) {
      FileSaver fs = new FileSaver(request, response);
      fs.saveToFile("D:\\" + fs.getFileName());
      fs.close();
  }
}
  1. 爲上一步代碼中的openFile方法準備Thymeleaf模板:simpleWord.html,代碼如下:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>最簡單的打開保存文件</title>
</head>
<body>
<div style="width:100%; height:800px;"  th:utext="${poHtmlCode}"></div>
<script>
    function Save() {
        pageofficectrl.WebSave();
    }
    function OnPageOfficeCtrlInit() {
        pageofficectrl.AddCustomToolButton("保存", "Save", 1);
    }
</script>
</body>
</html>
  1. 在需要點擊超鏈接實現在線打開文件的頁面(比如:index.html)中添加pageoffice.js文件的引用。
<script type="text/javascript" src="/pageoffice.js"></script>
  1. 然後在頁面中添加一個超鏈接,點擊超鏈接調用POBrowser對象的openWindow方法,彈出新瀏覽器窗口訪問simpleWord/openFile在線打開文件,代碼如下:
<a href="javascript:POBrowser.openWindow('simpleWord/openFile','width=1150px;height=900px;');">
    在線打開文檔
</a>
  1. 啓動項目,點擊“在線打開文檔”超鏈接,查看在線打開編輯保存Office文件的效果。

參考鏈接:PageOffice最簡集成代碼(Springboot)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章