前言:
在我们的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/
访问上面的链接看看下面对应的示例