当前位置: 首页 > news >正文

麒麟、UOS系统在线打开word文件并提取修订痕迹

麒麟、UOS系统在线打开word文件并提取修订痕迹

  •  查看本示例演示效果(Windows版)
  •  查看本示例演示效果(国产版)
  • 本示例关键代码的编写位置,请参考“开始 - 快速上手”里您所使用的开发语言框架的最简集成代码

注意

本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。

在实际应用中,为了方便查找和定位当前页面的某个痕迹,通常采用将当前文档中的所有痕迹遍历,并以列表方式显示到当前页面某个位置。

一般需要显示的痕迹属性包括:痕迹的用户名,痕迹的内容,痕迹的日期时间等。PageOffice 客户端控件提供了 RevisionsAsJson 对象来实现对痕迹的遍历。

RevisionsAsJson

  • author 代表当前痕迹的用户名
  • date 代表当前痕迹的日期
  • type 代表痕迹的类型
  • GetTextFromRevision 代表痕迹的文本内容

后端代码

本示例无后端关键代码。

前端代码

//获取痕迹列表,返回一组痕迹的<li>标签
function  getRevisionList(){var revisionList = "";var revisionsJson=pageofficectrl.word.RevisionsAsJson;var revisionObj = JSON.parse(revisionsJson);//遍历痕迹for(var key in revisionObj){let str = '';let revisionAuthor = revisionObj[key].author; //author属性为当前痕迹的用户名let revisionDate = revisionObj[key].date; //date属性为当前痕迹的日期str = dateFormat(revisionDate, '[yyyy-MM-dd HH:mm]') + revisionAuthor + ':';if (revisionObj[key].type === 1) { //type代表当前痕迹的类型为“插入”类型let revisionType = '插入';let revisionTxt = pageofficectrl.word.GetTextFromRevision(parseInt(revisionObj[key].id));//获取当前痕迹的文本内容str = str + revisionType +':' + revisionTxt;}else if (revisionObj[key].type === 2) { //type代表当前痕迹的类型为“删除”类型let revisionType = '删除';let revisionTxt = pageofficectrl.word.GetTextFromRevision(parseInt(revisionObj[key].id));str = str + revisionType +':' + revisionTxt;}else {let revisionType = '调整格式或样式。';str = str + revisionType ;}revisionList += "<li><a href='#' onclick='goToRevision(" + key + ")'>" + str + "</a></li>";}return revisionList;
}
//定位到一个痕迹
function goToRevision(key) {pageofficectrl.word.SelectRevision(key);
}
function dateFormat(date, format) {date = new Date((date-25569)*86400*1000);date = roundTimeToSeconds(date);date.setHours(date.getHours() - 8);var o = {'M+': date.getMonth() + 1, //month'd+': date.getDate(), //day'H+': date.getHours(), //hour'm+': date.getMinutes(), //minute's+': date.getSeconds(), //second'q+': Math.floor((date.getMonth() + 3) / 3), //quarter'S': date.getMilliseconds() //millisecond};if (/(y+)/.test(format))format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));for (var k in o)if (new RegExp('(' + k + ')').test(format))format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));return format;
}
function roundTimeToSeconds(date) {var seconds = date.getSeconds();if (seconds < 30) {date.setSeconds(0);} else {date.setSeconds(0);date.setMinutes(date.getMinutes() + 1);}return date;
}
// 把所有痕迹的<li>标签放到一个<ul>中
function refreshList() {document.getElementById("ul_Comments").innerHTML = getRevisionList();
}

效果:

参考链接: https://www.pageoffice.cn/pages/a124a0/

相关文章:

麒麟、UOS系统在线打开word文件并提取修订痕迹

麒麟、UOS系统在线打开word文件并提取修订痕迹 查看本示例演示效果&#xff08;Windows版&#xff09; 查看本示例演示效果&#xff08;国产版&#xff09;本示例关键代码的编写位置&#xff0c;请参考“开始 - 快速上手”里您所使用的开发语言框架的最简集成代码 注意 本文中…...

Vue3笔记摘录

1.Vue3整体知识概览图 2.ref与reactive具体使用区别 2-1 基本类型处理 const count1 ref(0) 使用ref自动转化为数字类型const count2 reactive(0) 参数必须是对象类型 2-2 具体使用过程 // ref 处理对象&#xff08;自动解包&#xff09; const user ref({name: John,a…...

大力探索“AI·Life爱生活”项目峰会暨战略投资签约仪式成功举办

2025年4月26日&#xff0c;杭州西溪雷迪森大酒店内气氛热烈非凡&#xff0c;大力探索&#xff08;杭州&#xff09;科技有限公司主办的“大力探索项目峰会暨战略投资签约仪式”在此隆重开启。这场汇聚了数百位行业精英与企业代表的盛会&#xff0c;不仅是一场智慧的碰撞&#x…...

复刻低成本机械臂 SO-ARM100 材料齐活篇

视频讲解&#xff1a; 复刻低成本机械臂 SO-ARM100 材料齐活篇 打印件基本ok&#xff0c;总共12个&#xff0c;尴尬的是github又更新了so-101&#xff0c;不过看了下还好只是优化了走线和几个结构键&#xff0c;影响不大&#xff0c;大不了后面再重新打印&#xff08;有3d打印机…...

解读 AI绘画工作流ComfyUI Stable Diffusion

ComfyUI 是什么?图像工作流又是什么? 认识ComfyUI 从名词术语来看: ComfyUI是一个基于节点流程的Stable Diffusion操作界面,通过自定义节点、拖拽连线实现精准的工作流定制,以完成更复杂的图像生成工作。 </...

北极星 新美团核销接口对接

美团吃相难看&#xff0c;东哥就应该干掉他 申请官方接口一般来说很难了 现在无非就是几种第三方开放出来的接口 按量收费&#xff0c;但是需要一次性充钱收首期的技术服务费 &#xff0c;然后按年收费就是我们技术自己解决的方式&#xff0c;方便便宜 ,代码齐全&#xff0c…...

理解数据库存储以及查询(集合)

理解数据库存储以及查询&#xff08;集合&#xff09; 基本概念定义 主键集合&#xff1a; 定义&#xff1a;主键集合是由数据库表中的主键组成的一个集合。主键是表中唯一标识每一行记录的属性&#xff08;或属性组合&#xff09;。 特性&#xff1a;主键集合包含表的主键属性…...

(Go Gin)Gin学习笔记(四)Gin的数据渲染和中间件的使用:数据渲染、返回JSON、浅.JSON()源码、中间件、Next()方法

1. 数据渲染 1.1 各种数据格式的响应 json、结构体、XML、YAML类似于java的properties、ProtoBuf 1.1.1 返回JSON package mainimport ("github.com/gin-gonic/gin""net/http" )func main() {r : gin.Default()r.POST("/demo", func(res *gi…...

机器视觉橡胶制品检测的应用

橡胶制品在生产过程中易出现划痕、气泡、缺料、毛边、杂质嵌入等多种缺陷&#xff0c;这些缺陷往往微小且随机分布&#xff0c;人工检测不仅耗时&#xff0c;漏检率也居高不下。尤其在汽车密封件、医疗硅胶制品等高端领域&#xff0c;微米级的缺陷都可能导致产品失效&#xff0…...

JavaScript:从JS的执行机制到location对象

一、JS执行机制 &#xff08;1&#xff09;JS是单线程 JavaScript语言的一大特点就是单线程&#xff0c;也就是同一时间只能做一件事。因为JavaScript是为了处理页面中的用户交互&#xff0c;以及制作DOM二诞生的。比如我们对某个DOM元素进行添加和删除操作&#xff0c;这个不…...

Sigmoid函数简介及其Python实现

文章目录 一、Sigmoid 函数简介1. 数学公式2. 关键特性3. 应用场景 二、Python 实现1. 使用 math 库 (适用于单个数值)2. 使用 numpy 库 (适用于数值、列表、数组、矩阵)3. 使用 scipy.special.expit (数值稳定) 三、小结 一、Sigmoid 函数简介 Sigmoid 函数&#xff08;也称为…...

全局事件总线EventBus的用法

全局事件总线 EventBus 在前端开发中是一种用于实现组件间通信的机制&#xff0c;适用于兄弟组件或跨层级组件间的数据传递。 1. 创建全局 EventBus 实例 在前端项目中&#xff0c;先创建一个全局的 EventBus 实例。在 Vue 中&#xff0c;可以通过创建一个新的 Vue 实例来实现…...

嵌入式Linux系统中的线程信号处理:策略与实践

在嵌入式Linux系统的开发中&#xff0c;多线程编程是提升系统性能和响应速度的重要手段。然而&#xff0c;多线程环境下的信号处理却是一个复杂且需要细致处理的问题。信号&#xff0c;作为进程间通信的一种机制&#xff0c;在嵌入式系统中常用于处理外部事件或中断。但在多线程…...

CCM/TCM在STM32中的含义和用途

CCM/TCM在STM32中的含义和用途 CCM&#xff08;Core Coupled Memory&#xff09;和TCM&#xff08;Tightly Coupled Memory&#xff09;是ARM架构中的特殊内存类型&#xff0c;它们都表示与CPU核心紧密耦合的内存区域。这些内存具有一些特殊特性&#xff0c;使其在某些应用场景…...

【网络原理】 《TCP/IP 协议深度剖析:从网络基础到协议核心》

文章目录 一、网络基础1. 认识IP地址概念作用格式组成子网掩码 2、认识Mac地址一跳一跳的网络数据传输 3. 网络设备及相关技术集线器&#xff1a;转发所有端口交换机&#xff1a;MAC地址转换表转发对应端口主机&#xff1a;网络分层从上到下封装主机&路由器&#xff1a;ARP…...

Windows系统编译支持GPU的llama.cpp

Windows系统编译支持GPU的llama.cpp git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp mkdir build cd buildcmake .. -G "Visual Studio 17 2022" -DGGML_CUDAON -DCMAKE_BUILD_TYPERelease -DCMAKE_CUDA_ARCHITECTURES"86"cmake --b…...

Unity编辑器扩展之导出项目中所有预制体中文本组件文字内容

一、最后导出的Excel文件效果如下图所示: 二、在Unity的Editor目录下,新建一个名为FindChineseInPrefabs的C#脚本,Copy以下代码到你新建的名为FindChineseInPrefabs的C#脚本中去,最后一定要保存文件哈。 using UnityEditor; using UnityEngine; using UnityEngine.UI; usi…...

高效管理远程服务器Termius for Mac 保姆级教程

以下是 Termius for Mac 保姆级教程&#xff0c;涵盖安装配置、核心功能、实战案例及常见问题解决方案&#xff0c;助你高效管理远程服务器&#xff08;如Vultr、AWS等&#xff09;。 一、Termius 基础介绍 1. Termius 是什么&#xff1f; 跨平台SSH客户端&#xff1a;支持Ma…...

WPF框架中常用算法

WPF框架中常用算法与实现 一、排序算法 1. 快速排序 (Quick Sort) ​​应用场景​​&#xff1a;大数据集合排序、性能敏感场景 public static void QuickSort(IList<int> list, int left, int right) {if (left < right){int pivotIndex Partition(list, left, r…...

【Java函数式编程-58】Java函数式编程深度解析

函数式编程(Functional Programming)作为一种编程范式&#xff0c;近年来在Java生态中获得了越来越多的关注和应用。自Java 8引入Lambda表达式和Stream API以来&#xff0c;函数式编程风格在Java开发中逐渐普及。本文将深入探讨Java中函数式编程的核心概念、实践技巧以及在实际…...

解决vscode cmake提示检测到 #include 错误

一、问题 cmake已经包含了动态库文件&#xff0c;依然提示“检测到 #include 错误。请更新 includePath。” 二、解决方案 Ctrl Shift P进入CPP编辑配置&#xff0c;然后在JSON中加入下面一行&#xff1a; "configurationProvider": "ms-vscode.cmake-tools&…...

Microsoft .NET Framework 4.8 离线安装包 下载

简介Microsoft .NET Framework 4.8 是对 Microsoft .NET Framework 4、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7、4.7.1 和 4.7.2 的高度兼容的就地更新。 脱机程序包可用于因无法连接 Internet 而导致 Web 安装程序无法使用的情况。 此包比 Web 安装程序大&#xff0c;并且…...

部署若依项目到服务器遇到的问题

以下是本次部署遇到的问题及解决方法 1、问题&#xff1a;docker一直出现“&#xff1e; ERROR [internal] load metadata for docker.io/library/xxx“的问题 ERROR: failed to solve: openjdk:8-jdk-alpine: failed to resolve source metadata for docker.io/libran y/ope…...

Elasticsearch--自带“搜索引擎“的数据库

一、核心原理 1. 倒排索引&#xff08;Inverted Index&#xff09; 基本概念 将文档中的每个词条&#xff08;term&#xff09;映射到包含它的文档列表上&#xff0c;正如图书馆目录将关键词映射到书籍编号。工作流程 分词&#xff08;Analysis&#xff09;&#xff1a;文本切…...

malloc的实现原理

malloc 是 C 语言中动态内存分配的核心函数&#xff0c;其实现原理涉及操作系统内存管理、数据结构和算法设计。以下是其核心实现原理的简化分析&#xff1a; 1. 内存池管理 基本思想&#xff1a;malloc 通过管理一个 内存池&#xff08;堆&#xff09;动态分配内存。操作系统…...

垃圾收集GC的基本理解

垃圾收集的基本理解 GC 的基本算法 标记清除 从根开始将可能被引用的对象用递归的方式进行标记&#xff08;标记阶段&#xff09;&#xff0c;然后再从根开始将全部对象按顺序扫描一遍&#xff0c;将没有被标记的对象进行回收&#xff08;清除阶段&#xff09;。 大多数情况…...

JVM——Java的基本类型的实现

Java 基本类型在 JVM 中的实现 Java 作为一种广泛使用的编程语言&#xff0c;其在虚拟机&#xff08;JVM&#xff09;上的实现细节对于开发者来说至关重要。本文将详细讲解 Java 基本类型在 JVM 中的实现&#xff0c;去深入理解 Java 编程语言的底层工作机制。 Java 基本类型…...

临床回归分析及AI推理

在医疗保健决策越来越受数据驱动的时代&#xff0c;回归分析已成为临床医生和研究人员最强大的工具之一。无论是预测结果、调整混杂因素、建模生存时间还是理解诊断性能&#xff0c;回归模型都为将原始数据转化为临床洞察提供了统计学基础。 AI推理 然而&#xff0c;随着技术…...

Ubuntu 22.04 的 ROS 2 和 Carla 设置指南(其一)

重点介绍适用于 Ubuntu 22.04 的全面 ROS 2 和 Carla 设置指南。我们将首先安装 Terminator 终端&#xff0c;然后安装 ROS 2 依赖项&#xff0c;然后继续安装 ROS 2 Humble。接下来&#xff0c;我们将介绍如何在 Ubuntu 22.04 上安装 Carla&#xff0c;最后通过设置 Carla ROS…...

声明:个人从未主动把文章设置为仅vip可读

之前一直在公司忙就没看csdn这边&#xff0c;前几天朋友看到我的博客是仅vip可读我才发现这个 给我气笑了。。。不反馈默认同意。。。。 现在都已经改回来 写文章的初衷就是记录一下自己的学习过程&#xff0c;本来就是一些偏基础类的东西&#xff0c;还需要去买vip才能看就太…...

【大模型系列篇】Qwen3开源全新一代大语言模型来了,深入思考,更快行动

Qwen3开源模型全览 Qwen3是全球最强开源模型&#xff08;MoEDense&#xff09; Qwen3 采用混合专家&#xff08;MoE&#xff09;架构&#xff0c;总参数量 235B&#xff0c;激活仅需 22B。 Qwen3 预训练数据量达 36T&#xff0c;并在后训练阶段多轮强化学习&#xff0c;将非思…...

DeepSeek-Prover-V2-671B 简介、下载、体验、微调、数据集:专为数学定理自动证明设计的超大垂直领域语言模型(在线体验地址)

DeepSeek-Prover-V2-671B 最新发布&#xff1a;专为数学定理自动证明设计的超大语言模型 体验地址&#xff1a;Hugging Face 在线体验 推荐入口&#xff1a;Novita 平台直达链接&#xff08;含邀请码&#xff09; 一、模型简介 DeepSeek-Prover-V2-671B 是 DeepSeek 团队于 2…...

Gupta-Sproull 抗据此画线算法

本文源自于&#xff1a;从https://www.inf.ed.ac.uk/teaching/courses/cg/lectures/cg4_2012.pdf Gupta-Sproull是在Brensenham的画线算法基础上得到。 为了防止之前的链接失效&#xff0c;特地搬运一下...

idea写spark程序

使用IntelliJ IDEA编写Spark程序的完整指南 一、环境准备 安装必要软件 IntelliJ IDEA (推荐Ultimate版&#xff0c;Community版也可) JDK 8或11 Scala插件(在IDEA中安装) Spark最新版本(本地开发可以用embedded模式) 创建项目 打开IDEA → New Project 选择"Maven…...

视觉问答论文解析:《Skywork R1V2: Multimodal Hybrid Reinforcement Learning for Reasoning》

《Skywork R1V2: Multimodal Hybrid Reinforcement Learning for Reasoning》论文解析 一、研究背景与动机 近年来&#xff0c;“慢思考”多模态模型&#xff08;如 OpenAI-o1、GeminiThinking、Kimi-1.5 和 Skywork-R1V&#xff09;在数学和科学领域的复杂推理任务中取得了显…...

修改linux账号名

修改linux账号名 结论是步骤1.临时创建一个辅助账户执行操作2.注销当前账户&#xff0c;登录 tempadmin 用户。3.使用它修改 旧用户名olduser&#xff1a;4.&#xff08;可选&#xff09;删除临时用户&#xff1a; 结论是 不可以直接修改,要么需要创建一个临时用户来打辅助. …...

计算机图形学:(二)MVP变换示例

前言 当在阅读计算机图形学系列的书籍时&#xff0c;会发现大部分图书每章内容都如出一辙。从个人实际体会来讲&#xff0c;虽然能理解书中大部分的知识&#xff0c;但到了实际使用时却有点抓耳挠腮。因此&#xff0c;在写了计算机图形学&#xff1a;&#xff08;一&#xff09…...

PostgreSQL中的SSL(2)

PGSQL数据库的默认隔离级别是读提交&#xff0c;并且同时支持可重复读和序列化模式。但是在9.1之前的版本中&#xff0c;序列化模式是采用快照隔离来实现&#xff0c;并非是真正的序列化模式。 这样的话就会存在一个问题&#xff0c;那就是写偏序&#xff08;Write Skew&#…...

Linux 部署以paddle Serving 的方式部署 PaddleOCR CPU版本

强烈建议您在Docker内构建Paddle Serving&#xff0c;更多镜像请查看Docker镜像列表。 提示-1&#xff1a;Paddle Serving项目仅支持Python3.6/3.7/3.8/3.9&#xff0c;接下来所有的与Python/Pip相关的操作都需要选择正确的Python版本。 提示-2&#xff1a;以下示例中GPU环境均…...

苏德战争前期苏联损失惨重(马井堂)

苏德战争前期&#xff08;1941年6月22日德国发动“巴巴罗萨行动”至1941年底至1942年初&#xff09;是苏联在二战中损失最惨重的阶段之一。以下是主要方面的损失概述&#xff1a; ‌一、军事损失‌ ‌人员伤亡与俘虏‌ 至1941年底&#xff0c;苏军伤亡约‌300万人‌&#xff…...

SI5338-EVB Usage Guide(LVPECL、LVDS、HCSL、CMOS、SSTL、HSTL)

目录 1. 简介 1.1 EVB 介绍 1.2 Si5338 Block Diagram 2. EVB 详解 2.1 实物图 2.2 基本配置 2.2.1 Universal Pin 2.2.2 IIC I/F 2.2.3 Input Clocks 2.2.4 Output Frequencies 2.2.5 Output Driver 2.2.6 Freq and Phase Offset 2.2.7 Spread Spectrum 2.2.8 快…...

LeetCode LCP40 心算挑战题解

看似一道简单的题目&#xff0c;实则不然&#xff0c;没有看评论的话&#xff0c;实在想不出来怎么写。 现在则由我来转述思想供大家参考理解&#xff0c;还是先给出示例&#xff0c;供大家更好的理解这个题目。 输入&#xff1a;cards [1,2,8,9], cnt 3输出&#xff1a;18解…...

Smart Link+Monitor Link组网

1.技术背景及原理 一般情况下&#xff0c;Smart Link只能感知与其接口直连的链路故障。将Monitor Link配置在Smart Link的上游设备上&#xff0c;可使Smart Link迅速感知上游链路故障&#xff0c;进行链路切换。Smart Link与Monitor Link配合使用&#xff0c;扩大了Smart Link…...

【计算机网络】​TCP(传输控制协议)套接字,多线程远程执行命令编程​

&#x1f4da; 博主的专栏 &#x1f427; Linux | &#x1f5a5;️ C | &#x1f4ca; 数据结构 | &#x1f4a1;C 算法 | &#x1f152; C 语言 | &#x1f310; 计算机网络 上篇文章&#xff1a;UDP套接字编程&#xff08;英汉字典以及多线程聊天室编写&#xff09…...

PostgreSQL 中 VACUUM FULL 对索引的影响

PostgreSQL 中 VACUUM FULL 对索引的影响 是的&#xff0c;VACUUM FULL 会重建表上的所有索引。这是它与普通 VACUUM 命令的一个重要区别。 一、VACUUM FULL 的工作原理 表重建过程&#xff1a; 创建表的全新副本只将有效数据写入新存储删除原始表文件将新文件重命名为原表名…...

DeepSeek本地部署及WebUI可视化完全指南

以下是为您整理的DeepSeek本地部署及WebUI可视化完全指南&#xff0c;整合了官方文档及社区实践的最佳方案&#xff1a; 一、环境准备 1. 硬件需求 CPU&#xff1a;推荐支持AVX2指令集的Intel i7或AMD Ryzen 7及以上处理器 。 GPU&#xff08;可选但推荐&#xff09;&#xf…...

大模型时代的新燃料:大规模拟真多风格语音合成数据集

以大模型技术为核心驱动力的人工智能变革浪潮中&#xff0c;语音交互领域正迎来广阔的成长空间&#xff0c;应用场景持续拓宽与延伸。 其中&#xff0c;数据作为驱动语音大模型进化的关键要素&#xff0c;重要性愈发凸显。丰富多样的高质量数据能够让语音大模型充分学习到语音…...

单体项目到微服务的架构演变与K8s发展是否会代替微服务

单体项目到微服务的架构演变与K8s发展是否会代替微服务 在互联网大厂Java求职者的面试中&#xff0c;经常会被问到关于单体项目到微服务的架构演变以及Kubernetes&#xff08;k8s&#xff09;的发展是否会代替微服务的相关问题。本文通过一个故事场景来展示这些问题的实际解决…...

AI驱动的决策智能系统(AIDP)和自然语言交互式分析

在当今快速变化的商业环境中&#xff0c;以下几个企业级系统领域最有可能成为新的热点&#xff0c;其驱动力来自数字化转型加速、AI技术爆发、全球化协同需求以及ESG&#xff08;环境、社会、治理&#xff09;合规压力的叠加 1. AI驱动的决策智能系统&#xff08;AIDP&#xf…...

kubernetes》》k8s》》Service 、Ingress 区别

K8S>>Service 资料 K8S >>Ingress 资料 Ingress VS Service 物理层数据链路层网络层传输层会话层表示层应用层 Ingress是一种用于暴露HTTP和HTTPS路由的资源&#xff0c;它提供了七层&#xff08;应用层&#xff09;的负载均衡功能。Ingress可以根据主机名、…...