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

news/2024/9/19 16:22:19/文章来源:https://www.cnblogs.com/lhl77/p/18375567

调用PageOffice的WordCompare方法,同时在线打开两个Word文档,可以切换显示其中的一个文档,或者显示两个文档的对比结果,即可实现在线的文档内容比较功能。此功能可以应用在以下方面:

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

比较两个版本的Word文档

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

显示文件初稿-A文档

显示文件终稿-B文档

显示比较结果

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

后端代码

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

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

前端代码

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

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

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

  1. function showFileA() {
  2. pageofficectrl.word.ShowCompareView(1);
  3. }
  4. function showFileB() {
  5. pageofficectrl.word.ShowCompareView(2);
  6. }
  7. function showCompare() {
  8. pageofficectrl.word.ShowCompareView(0);
  9. }

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/785987.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发编程[5]_wait和notify

1. wait 和 notify wait() 方法是Object类中的方法,他的作用是让当前线程进入等待状态,而使用notify() 方法可以唤醒。wait(long): void ,参数是毫秒,表示等待毫秒数,直到时间结束或被唤醒; wait(long, int): void ,第一个参数是毫秒,第二个参数是纳秒,如果纳秒在0-99…

【2024-08-23】邬贺铨院士:大模型赋能企业数字化转型

一、AI的演进之路:从生成式AI到通用A1二、大模型的构建与应用:自建与协作开发的行业大模型2.1 自建基础大模型2.2 合作开发行业大模型三、对MaaS及其工具链的探索四、大模型推动云服务创新4.1 大模型时代对算力网络的要求4.2 大模型推动IaaS创新发展4.3 大模型催生AI PaaS创新…

.NET 8 + Vue 3 极简 RABC 权限管理系统

前言 在日常工作中,几乎每家公司都需要一个后台管理系统来处理各种任务。为了帮助大家快速搭建这样一个系统,给大家介绍一个基于最新技术 .NET 8 和前端框架 Vue 3 实现的极简 RABC(基于角色的访问控制)权限管理系统。 该系统后端采用经过精心精简的 ABP框架,前端则使用了…

ToDesk支持多系统互控,使用教程来了!

能多系统跨设备进行远控的软件被我找到了! 就是ToDesk远程控制👍官网就能免费下载使用 遇到公司电脑window系统,但家里笔记本手机是苹果再也不会束手无策了! 电脑手机平板都能互相远程控制,一个账号可登录多个设备 传输文件速度高达12m/s,画质高清还能匹配网速流畅度进行…

初识 Flutter

一、Flutter 简介 Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台。 Flutter 提供了丰富的组件、接口,开发者可以很快地为 Flutter 添加 Native(即原生开发,指基于…

Windows11下安装Docker

一、准备工作 先下载以下资源,暂时不要安装: Docker安装包 Wsl2安装包 二、开始安装 1.打开主板BIOS的虚拟化选项,可以在任务管理器中确实是否已经打开2.勾上虚拟机平台所有选项(建议完成这一步骤重启)3.用管理员身份打开PowerShell,执行下面命令启动wsl dism.exe /onlin…

振弦式应变计 可同步测量温度,监测混凝土结构的应力与应变

振弦式应变计 可同步测量温度,监测混凝土结构的应力与应变振弦式应变计广泛适用于长期埋设在水工建筑物或其他混凝土结构物内部,如梁、柱、桩基、挡土墙、衬砌、墩以及基岩等,用于测量埋设点的线性变形(应变)和应力,同时也可兼测埋设点的温度。GEO SFxxxx系列振弦式应变计…

iPhone 16 即将推出,,这将是苹果最大的升级, 这里有 7 个你不敢相信 的功能

iPhone 16 即将推出,,这将是苹果最大的升级, iphone16有哪些新功能呢?iPhone16值得买么?这里有 7 个你不敢相信 的功能,让我们先睹为快。iphone16有哪些新功能 1. 您现在可以链接两部 iPhone 以在 iOS 18 中发送现金 2.新的AI智能计算器 3.用眼睛控制你的iPhone 4. 阻止使…

苹果电脑如何远程控制?ToDesk三步操作就成功!

随着电子设备深入我们的日常生活,远程控制也成为了人们电脑手机中的常备软件,无论是为了工作、学习还是生活便利,远程控制软件能让我们跨越空间实现不同设备之间的远控连接。目前市面上有众多国内外远控软件,但小社长最常用的还属ToDesk远程控制。它的操作界面简单还易上手…

一个开源完全免费的无损视频或音频的剪切/裁剪/分割/截取和视频合并工具

大家好,今天给大家分享一款致力于成为顶尖跨平台FFmpeg图形用户界面应用的软件工具LosslessCut。LosslessCut是一款致力于成为顶尖跨平台FFmpeg图形用户界面应用的软件工具,专为实现对视频、音频、字幕以及其他相关媒体资产的超高速无损编辑而精心打造。 项目介绍 LosslessCu…

python socket编辑示例 tcp

服务端代码:from socket import socket, AF_INET, SOCK_STREAM# 1. 创建socket对象 AF_INET:用于internet之间的进程通信,SOCK_STREAM:表示TCP协议 server_socket = socket(AF_INET, SOCK_STREAM)# 2. 绑定ip和端口号 ip = 127.0.0.1 port = 8888 server_socket.bind((ip…

python socket编辑示例

服务端代码:from socket import socket, AF_INET, SOCK_STREAM# 1. 创建socket对象 AF_INET:用于internet之间的进程通信,SOCK_STREAM:表示TCP协议 server_socket = socket(AF_INET, SOCK_STREAM)# 2. 绑定ip和端口号 ip = 127.0.0.1 port = 8888 server_socket.bind((ip…