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"