1. 程式人生 > >Java 線上開啟 word 檔案,並且禁止複製

Java 線上開啟 word 檔案,並且禁止複製

前言:
在我們的web系統中,有時會有合同公文等 一些需要在網頁上開啟的word檔案。並且也會伴隨著安全瀏覽的需求:比如,擔心使用者將檔案私自修改,有禁止編輯的需求;擔心使用者將文件的內容直接複製拷貝出去以做他用,便有禁止複製拷貝的需求。

要完成這種需求,如果從頭到尾由我們自己來實現的話,首先要會整合ActiveX控制元件,其次還要懂一些VBA程式設計,最重要的是還要讓這些技術整合到Java中。對於我們開發web系統的開發人員來說,只是需要將word檔案在web系統中開啟並且做一些簡單操作,就要學習如此多的技術,未免學習成本太大。

所以我們今天就要介紹一箇中間件技術——pageoffice,此中介軟體技術已經將 在web系統操作office文件的大部分功能整合完畢,大家只需要關注自己web系統的業務邏輯即可,下面我們來實戰將pageoffice整合一下。

 

方案

線上開啟word禁用拷貝的三種方式:
1 使用AllowCopy屬性,效果:所有的word程序都不能進行拷貝操作
  

2  禁止word選擇功能,效果:因為無法選擇,所以無法拷貝

3 使用 DisableCopyOnly屬性,效果:禁止拷貝文件內容到外部,但內部是可以拷貝的,也可以從外部拷貝到word文件內部

具體實現過程

1.官網http://www.zhuozhengsoft.com/dowm/下載整合檔案,引入jar包,配置web.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('Default.jsp' , 'width=1200px;height=800px;');">開啟文件,禁止複製</a>

3.在父頁面同級目錄下建立一個名為Default.jsp的檔案

<%@ page language="java"
	import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*"
	pageEncoding="utf-8"%>
<%
//******************************卓正PageOffice元件的使用*******************************
	//設定PageOffice伺服器元件
	PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
	poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必須

	
	//設定儲存頁面
	poCtrl1.setSaveFilePage("SaveFile.jsp");
    WordDocument doc = new WordDocument();

//=================三種方案只需用一種就可以==============================
	
    //第一種方案 禁止拷貝
	poCtrl1.setAllowCopy(false);//禁止拷貝

    //第二種方案 禁止word選擇功能
	doc.setDisableWindowSelection(true);

    //第三種方案 禁止拷貝文件內容到外部 
    poCtrl.setDisableCopyOnly(true);

//===================================================================
	
	//設定頁面的顯示標題
	poCtrl1.setCaption("演示:檔案線上安全瀏覽");
    poCtrl1.setWriter(doc);
	
	//開啟檔案
	poCtrl1.webOpen("d:\\aa.doc", OpenModeType.docReadOnly, "張三");
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>   
    <title>演示:檔案線上安全瀏覽</title>
  </head>
  
  <body>
  <script type="text/javascript">
      
    </script>
    <div style=" width:900px; height:700px;">
          <%=poCtrl1.getHtmlCode("PageOfficeCtrl1")%>
    </div>
  </body>
</html>

4:d盤 新建一個 aa.doc 檔案

啟動專案直接訪問.此時會提示安裝外掛,點選安裝成功後提示註冊,填寫相關資訊,填寫註冊碼    I7TGD-71VV-FYD8-4NMYP   就可以開啟文件.

最終效果

http://www.pageoffice.cn:8080/Samples4/

訪問上面的連結看看下面對應的示例

剛開始接觸pageoffice的話,也可以看視訊快速上手http://www.zhuozhengsoft.com/Technical/

相關推薦

Java 線上開啟 word 檔案並且禁止複製

前言: 在我們的web系統中,有時會有合同公文等 一些需要在網頁上開啟的word檔案。並且也會伴隨著安全瀏覽的需求:比如,擔心使用

java 實現 線上開啟word 檔案並轉換成 pdf 檔案

一、需求     線上把 word 檔案轉換成 pdf 檔案。 二、方案   &nb

java 線上word 檔案插入圖片並設定圖片大小

一、前言: 有時我們想在一篇word文件中的指定位置新增一張伺服器上的圖片,並且並且設定圖片大小。這個對文件的操作一定是需要第三

Java實現開啟Excel檔案執行VBA指令碼並監測檔案狀態

   /** * @author DevinLiu * 一鍵釋出報告 * 2018年9月19日下午2:44:19 */ public class GenerateReport { public String report(){

ffmpeg opencv 開啟視訊檔案並且播放

// FFMpeg + OpenCV demo #include <stdio.h> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp>

java freemarker 通過ftl模板檔案匯出word檔案發現在有中文地方出現在亂碼開啟word檔案提示xml錯誤解決辦法

最近開發一個匯出word模板檔案在本機調整一直正常,但是在伺服器下載下來的檔案老提示xml錯誤,仔細檢視發現出錯的word檔案以xml形式打開發現在在報錯位置有亂碼, 剛開始以為是word轉xml是出現亂碼,單獨除錯word轉xml正常,那應該是向ftl檔案中寫入變數後以寫

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

前言: 我們知道,大型一點的OA辦公系統都會有很多線上處理office辦公文件的需求。其中有一點也基本繞不開,那就是為文件蓋章或新增手寫簽名來保護文件,讓被蓋章的文件不再被編輯。 在Java中,我們都知道用於操作office的解決方案常用的有POI、OpenOffice等。但是這些解決方案有一個

Java 實現線上開啟 word 文件 併發處理

1. 需求 防止多個使用者同時開啟一個檔案,出現編輯儲存檔案相互覆蓋的問題。 2. 頁面程式碼 (1)web.xml <!-- PageOffice Begin --> <servlet> <servlet-name>poserver<

遍歷資料夾內所有的CSV檔案並且合併為同一個CSV

import pandas as pd import os ### 讀取檔案中的資料內容。 os.listdir(u"F:/公司/03_Study/01_爬蟲") Folder_Path = u"F:/公司/03_Study/01_爬蟲" # 要拼接的資料夾及其完整路徑,注意不要包含中文

PHP匯出word檔案簡單拓展可匯出其他文字類檔案

PHP匯出word檔案,簡單拓展可匯出其他文字類檔案 /** * PHP 匯出簡單文字內容(word txt等) * @param $content mixed 匯出內容 (文字string / html程式碼) * @param $filename string 需儲存檔名 * @

linux中使用ifconfig命令檢視網絡卡資訊時顯示為eth1但是在network-scripts中只有ifcfg-eth0的配置檔案並且裡面的NAME="eth0"

除了題目中的問題,其實在執行命令:service network restart時,會報錯: 解決辦法: 首先需要修改70-persistent-net.rules檔案: vim /etc/udev/rules.d/70-persistent-net.rules 然

java初始化配置檔案 直接使用PropUtil.get(key)獲取值

package com.audaque.cas.server; import org.slf4j.Logger;   import org.slf4j.LoggerFactory;      import java.io.*;  

java導入excle表格並且對表格進行相應的修改並對表格數據進行整理最後導出本地表格等一系列操作

對象 tabs stream span 指數 ring vat 14. int 1.首先創建一個java項目 2.導入以下jar包 3.代碼如下 public class auto_date { private static List<List<Strin

java selenium 讀取配置檔案報錯中文亂碼

參考引自:https://blog.csdn.net/qq_27093465/article/details/70765870 根據自己問題解決: package com.property; import java.io.BufferedInputStream; import java.i

oracle匯入sql檔案並且記錄日誌

一、匯入.sql檔案 @data.sql 二、記錄日誌: 1、輸入命令  sqlplus 資料庫名/密碼@資料庫   按回車鍵 2、輸入spool  指定路徑:\a.log    按回車鍵  (此步驟的主要作用就是追蹤批量執

java w3c解析xml檔案獲取指定節點內容讀取外部配置檔案

原始碼: package com.ys.adage.utils; import com.ys.adage.message.CodeObjectResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.

SQL Server無法開啟物理檔案作業系統錯誤 5:"5(拒絕訪問。)的解決辦法

在新裝的系統中使用SQL Server附加以前的資料庫的時候可能會遇到“無法開啟物理檔案,拒絕訪問”的錯誤,如下圖:     解決方法為使用windows驗證登入,或者更改SQL Server內建賬戶型別為Local System。 以SQL Server 2008 R2為例,更改

java導入excle表格並且對表格進行相應的修改並對表格數據進行整理最後導出本地表格等一系列

new oid ace ava txt文件 輸入 lld 字符串 能量 1.首先創建一個java項目   完成效果如下圖所示 2.導入以下jar包 3.代碼如下   其中行和列的操作是根據需求自動劃分的 復制代碼1 public class auto_date {2 pri

讀取bin檔案並且按結構體賦值列印

目標:讀取一個bin檔案,並且將bin檔案中的資料,按位元組對齊賦值給結構體,並且打印出結構體的內容 目前思路是簡單的先將bin檔案資料一次性讀到一個數組中,再將陣列強制轉換為結構體 char buff[256] FILE *fp; fp = NULL; fp = f

使用java實現讀取txt檔案匯入到MongoDB中

1.txt檔案如下 2.建立main主類 public static void main(String[] args) {        MongoClient mongo = new MongoClient("localhost"