转载:国产麒麟v10、UOS系统在线比较两个Word文件的内容差异

            <div id="content_views" class="htmledit_views">
                <p>调用PageOffice的WordCompare方法,同时在线打开两个Word文档,可以切换显示其中的一个文档,或者显示两个文档的对比结果,即可实现在线的文档内容比较功能。此功能可以应用在以下方面:</p> 
  • 文档管理中,比较两个版本 Word 文档的差别。 在处理文档管理的 Web 项目中,比较两个版本的 Word,指的不是 Word 菜单里面的版本管理,而是比较两个不同的 Word 文件内容差异,只是为了表述方便,才说是比较两个版本的 Word 文档。当然,两个完全不同的 Word 文档做比较是没有任何意义的,一定是两文件中的一个文件是在另一个文件的基础上做了一些修改,再比较这两个文件的差异,想知道新文件相对旧文件到底有哪些变动。
  • 文档管理中,比较起草的初始文件与经过多人流转审批并清稿后的最终文件的差异。 虽然文件在流转审批的环节可以采用留痕的方式来显示与初始文件的差别,但是最终在清稿环节清理文件中所有痕迹的时候,也难免清稿人员会有意或无意的修改了文件中的重要内容,如果文档的内容很长,那么比较初始文件和最终文件的差异,也是一个大工程。
  • 合同管理中,比较己方编辑的合同内容与对方修改的合同内容差别。 比如己方起草了一份合同发给对方修改,对方并没有以留痕模式修改合同,不管对方此举是有意还是无意,甚至误改了合同的条款,最后比较己方合同的内容与对方合同的内容差异都需要极大的工作量,如果己方又修改再发给对方修改,这样来回几次操作,双方所消耗的时间和精力会更大。
  • 合同管理中,比较合同原始文件与经过多人流转审批并清稿后的最终文件的差异。 与文档管理中的文件流转类似,一般来说合同也会经历起草、审批、清稿等环节,即使领导在审批环节已经阅览了全文,并在文档中注明了各项修改意见,但是难免在合同清稿后,领导需要重新阅览全文,并重新确定每项修改意见是否落实在文件中,这仍然需要耗费领导大量的时间和精力。

比较两个版本的 Word 文档

本文以“比较两个版本的 Word 文档”为例,简单的描述一下 PageOffice 提供的在线 Word 文档内容比较功能。比如起草了一个“电子印章产品特点”的 Word 文件,备份此初稿后,流转到某个环节又以无痕模式修改了文件中的内容,比如删除了“粘贴、拷屏、拖放”这几个文字,并添加了一句话“签章文件可以另存成 KHD 文件”,然后保存文件,此时的文件就是算是终稿,调用 PageOffice 的 webCompare 方法同时在线打开“电子印章产品特点”的初稿和终稿,对比效果如下面图片所示:

显示文件初稿 -A 文档

显示文件终稿 -B 文档

显示比较结果

显示文件初稿与终稿的比较结果时,PageOffice 就会以痕迹的方式显示两个文档之间的差异。

后端代码

调用 PageOfficeCtrl 对象的 wordCompare 方法,同时打开两个文件。

PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
poCtrl.wordCompare("doc/aaa1.doc", "doc/aaa2.doc", OpenModeType.docAdmin, "张三");

前端代码

1、在 OnPageOfficeCtrlInit 事件中添加自定义按钮;

OnPageOfficeCtrlInit() {
  pageofficectrl.AddCustomToolButton("显示 A 文档", "showFileA()", 0);
  pageofficectrl.AddCustomToolButton("显示 B 文档", "showFileB()", 0);
  pageofficectrl.AddCustomToolButton("显示比较结果", "showCompare()", 0);
},

2、实现自定义按钮所调用的 js 函数;

function showFileA() {
  pageofficectrl.word.ShowCompareView(1);
}

function showFileB() {
pageofficectrl.word.ShowCompareView(2);
}

function showCompare() {
pageofficectrl.word.ShowCompareView(0);
}

windows 系统对比效果地址:比较两个 Word 文件的内容差异 | PageOffice 开发者中心