1. 程式人生 > >Java實現線上開啟word文件加蓋印章/蓋章/簽名功能

Java實現線上開啟word文件加蓋印章/蓋章/簽名功能

前言:
我們知道,大型一點的OA辦公系統都會有很多線上處理office辦公文件的需求。其中有一點也基本繞不開,那就是為文件蓋章或新增手寫簽名來保護文件,讓被蓋章的文件不再被編輯。

在Java中,我們都知道用於操作office的解決方案常用的有POI、OpenOffice等。但是這些解決方案有一個通病就是功能少,而且對於office文件的操作在格式上會經常出問題。這是對OA系統的一大考驗,一旦文件格式出錯,那文件必定崩潰,使用者體驗度極差。

所以我們必須找到一款在線上直接呼叫微軟office程式介面的外掛才夠穩定,文件格式問題才可以徹底放心。本篇文章我就來介紹一個容易上手,功能強大的中介軟體技術——pageoffice。本篇文章末尾也會免費分享pageoffice的啟用碼。

先看效果:
點選加蓋印章

輸入蓋章人使用者名稱密碼(自己系統可以自定義新增,這裡輸入預設的:李志:111111)

選擇印章(開發人員可以為操作者自由新增需要的印章)

 

最後效果(蓋上去之後文件被保護)

 部署步驟(只需5步)
1.官網http://www.zhuozhengsoft.com/dowm/下載整合檔案,引入jar包,配置web.xml


去剛才下載的整合檔案中找到lib,將裡面的內容放在專案web-inf的lib中引入jar包,然後將web.xml的pageoffice配置引入到自己專案的wb.xml中

2.在父頁面aaa.jsp(需要開啟文件的頁面)放一個a標籤或者button
寫a標籤之前先引入pageoffice需要的js檔案

<script type="text/javascript" src="/jquery.min.js"></script>
<script type="text/javascript" src="/pageoffice.js" id="po_js_main"></script>
然後新增a標籤 

<a href="javascript:POBrowser.openWindowModeless('insertseal.jsp','width=1200px;height=800px;')" style=" color:#0108f6; text-decoration:underline;">開啟word檔案進行蓋章</a>
3.在父頁面同級目錄下建立一個名為insertseal.jsp的檔案
<%@ page import="com.zhuozhengsoft.pageoffice.PageOfficeCtrl" %>
<%@ page import="com.zhuozhengsoft.pageoffice.OpenModeType" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    //建立pageoffice核心物件
    PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
    //設定授權地址,必須. 不必修改
    poCtrl.setServerPage(request.getContextPath()+"/poserver.zz");
    //新增"加蓋印章"自定義按鈕
    poCtrl.addCustomToolButton("加蓋印章", "InsertSeal()", 2);
    //新增"刪除印章"自定義按鈕
    poCtrl.addCustomToolButton("刪除印章", "DeleteSeal()", 21);
    //設定執行儲存檔案程式碼的請求地址
    poCtrl.setSaveFilePage("saveFile.jsp");
    //開啟test.doc檔案,開啟方式為普通編輯模式,文件操作者為張三
    poCtrl.webOpen("test.doc",OpenModeType.docNormalEdit,"張三");
%>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript">
        //加蓋印章
        function InsertSeal() {
                try {
                    document.getElementById("PageOfficeCtrl1").ZoomSeal.AddSeal();
                } catch(e) {}
        }
        //刪除印章
        function DeleteSeal(){
            var iCount = document.getElementById("PageOfficeCtrl1").ZoomSeal.Count;//獲取當前文件中加蓋的印章數量
            if(iCount > 0){
                document.getElementById("PageOfficeCtrl1").ZoomSeal.Item(iCount-1).DeleteSeal();//刪除最後一個印章,Item 引數下標從 0 開始
                alert("成功刪除了最新加蓋的印章。");
            }else{
                alert("請先在文件中加蓋印章後,再執行刪除操作。");
            }
        }
    </script>
</head>
<body>
<%--在頁面顯示pageoffice控制元件--%>
<div style="width: auto; height: 700px;">
    <%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>
</div>
</body>
</html>