Java在线安全浏览文档(只读打开文件/禁止编辑/禁止复制拷贝/禁止另存/禁止打印)

版权声明:本文为博主原创文章,如果喜欢欢迎收藏转载! https://blog.csdn.net/IT_zhang81/article/details/85156647

前言:

在我们的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/

如有侵权,请联系博主

猜你喜欢

转载自blog.csdn.net/IT_zhang81/article/details/85156647