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/