java 实现在线比较两个版本的Word文档的功能

一、需求介绍

    在平常的学习或工作中,有时我们需要对同一篇文章进行多次修改,或者不同人对同一篇文章进行修改,修改的次数多了,难免会杂乱。举个简单的例子:刚刚编辑好的一份合作方案,想着给合作方发过去看一下的。没想成,对方看完后,有些地方还不满意,就在文档上直接进行了一番修改。最后到自己手上的文档已经面目全非了,好吧!还好手上有原始文件,我可以对比一下看看对方到底添加了些什么内容,修改了些什么内容。有没有什么好方法能够对比两个文档,快速找出其中不同之处呢?

二、方案

    用 pageoffice 提供的两个文档差异化比较的功能

三、核心代码

四:具体的实现步骤

1:实现简单的在线打开文档()

2: 

poCtrl.webOpen("doc/test.doc",OpenModeType.docNormalEdit,"张佚名");  

        改成

 poCtrl1.wordCompare("doc/aaa1.doc", "doc/aaa2.doc", OpenModeType.docAdmin, "张三");

3:添加自定义按钮

poCtrl1.addCustomToolButton("显示A文档", "ShowFile1View()", 0);
poCtrl1.addCustomToolButton("显示B文档", "ShowFile2View()", 0);
poCtrl1.addCustomToolButton("显示比较结果", "ShowCompareView()", 0);

4:写对应按钮的 js 方法

function ShowFile1View() {
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.ShowRevisionsAndComments = false;
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.RevisionsView = 1;
}
function ShowFile2View() {
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.ShowRevisionsAndComments = false;
}
function ShowCompareView() {
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.ShowRevisionsAndComments = true;
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.RevisionsView = 0;
}

下面的图片说明一下 true, false 和 0 ,1 代表什么

五、完整的代码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.zhuozhengsoft.pageoffice.*, com.zhuozhengsoft.pageoffice.wordwriter.*,java.awt.*,java.net.*"%>
<%

PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz");

// Create custom toolbar
poCtrl1.addCustomToolButton("保存", "SaveDocument()", 1);
poCtrl1.addCustomToolButton("显示A文档", "ShowFile1View()", 0);
poCtrl1.addCustomToolButton("显示B文档", "ShowFile2View()", 0);
poCtrl1.addCustomToolButton("显示比较结果", "ShowCompareView()", 0);

//poCtrl1.wordCompare("doc/aaa1.doc", "doc/aaa2.doc", OpenModeType.docReadOnly, "张三");
poCtrl1.wordCompare("doc/aaa1.doc", "doc/aaa2.doc", OpenModeType.docAdmin, "张三");

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Word文档比较</title>

  </head>
  
  <body>
  <script language="javascript" type="text/javascript">
	    function ShowFile1View() {
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.ShowRevisionsAndComments = false;
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.RevisionsView = 1;
	    }
	    function ShowFile2View() {
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.ShowRevisionsAndComments = false;
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.RevisionsView = 0;
	    }
	    function ShowCompareView() {
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.ShowRevisionsAndComments = true;
	        document.getElementById("PageOfficeCtrl1").Document.ActiveWindow.View.RevisionsView = 0;
	    }
	    
	</script>
    <div style="width:1000px; height:800px;">
              <%=poCtrl1.getHtmlCode("PageOfficeCtrl1")%>
  	</div>
  </body>
</html>

六、最终效果

A文档

B文档

比较效果:

七、注意事项

    文档比较的功能需要企业版才能实现(PageOffice V4.0 企业版试用序列号:I7TGD-71VV-FYD8-4NMYP)

也可以看看在线的演示效果 http://www.pageoffice.cn:8080/Samples4/

刚开始接触pageoffice的话,也可以看视频快速上手.http://www.zhuozhengsoft.com/Technical/

猜你喜欢

转载自blog.csdn.net/IT_zhang81/article/details/88345359
今日推荐