前言:
在我们的web系统中,有时会有合同公文等 一些需要在网页上打开的word文件。并且也会伴随着安全浏览的需求:比如,担心用户将文件私自修改,有禁止编辑的需求;担心用户将文档的内容直接复制拷贝出去以做他用,便有禁止复制拷贝的需求;担心用户直接将文件另存为到本地对文档进行非法传播,便有禁止另存的需求;担心用户将文件打印出来,便有禁止打印的需求。
要完成这种需求,如果从头到尾由我们自己来实现的话,首先要会集成ActiveX控件,其次还要懂一些VBA编程,最重要的是还要让这些技术整合到Java中。对于我们开发web系统的开发人员来说,只是需要将word文件在web系统中打开并且做一些简单操作,就要学习如此多的技术,未免学习成本太大。
所以我们今天就要介绍一个中间件技术——pageoffice,此中间件技术已经将 在web系统操作office文档的大部分功能整合完毕,大家只需要关注自己web系统的业务逻辑即可,下面我们来实战将pageoffice集成一下。
先看效果:
此时在线打开的文档不能编辑、不能选中、不能另存、不能右键、不能打印。
部署步骤(只需4步)
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('OpenWord.jsp' , 'width=1200px;height=800px;');">文件在线安全浏览</a>
3.在父页面同级目录下创建一个名为OpenWord.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.setAllowCopy(false);//禁止拷贝
poCtrl1.setMenubar(false);//隐藏菜单栏
poCtrl1.setOfficeToolbars(false);//隐藏Office工具条
poCtrl1.setCustomToolbar(false);//隐藏自定义工具栏
poCtrl1.setJsFunction_AfterDocumentOpened("AfterDocumentOpened");
//设置页面的显示标题
poCtrl1.setCaption("演示:文件在线安全浏览");
//打开文件
poCtrl1.webOpen("test.doc", OpenModeType.docReadOnly, "张三");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>演示:文件在线安全浏览</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<script type="text/javascript">
function AfterDocumentOpened() {
document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(4, false); //禁止另存
document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(5, false); //禁止打印
document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(6, false); //禁止页面设置
document.getElementById("PageOfficeCtrl1").SetEnableFileCommand(8, false); //禁止打印预览
}
</script>
<div style=" width:auto; height:700px;">
<%=poCtrl1.getHtmlCode("PageOfficeCtrl1")%>
</div>
</body>
</html>
4.新建一个名为test.doc的word文件(如果新建的是docx文件就将第三步的poCtrl1.webOpen("test.doc", OpenModeType.docReadOnly, "张三");代码改为poCtrl1.webOpen("test.docx", OpenModeType.docReadOnly, "张三");
将新建的word文件随便编辑点内容放在OpenWord.jsp文件同级目录下.然后启动项目直接访问aaa.jsp点击链接.此时会提示安装插件,点击安装成功后提示注册,填写相关信息,填写注册码CA1XB-MF7Y-12ST-PSBP2就可以打开文档.
注意:如果需要更丰富的功能,大家可以去pageoffice官网下载示例代码直接将samples4文件夹扔到Tomcat的webapps下,启动Tomcat,浏览器访问http://localhost:8080/Samples4/index.html,查看示例中的下面一个链接,直接看samples4文件夹下ReadOnly文件夹里面的代码.
刚开始接触pageoffice的话,也可以看视频快速上手.http://www.zhuozhengsoft.com/Technical/
如有侵权,请联系博主