首页 > 系统相关 >国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版在线打开 word文件编辑留痕并显示痕迹列表

国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版在线打开 word文件编辑留痕并显示痕迹列表

时间:2024-07-12 14:08:35浏览次数:8  
标签:uos 痕迹 str 国产 文档 key date word 留痕

国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版在线打开 pdf 文件
PageOffice 国产版 :支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)芯片架构。

查看本示例演示效果
本示例关键代码的编写位置
Vue+Springboot

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

强制留痕模式编辑

Word中的“痕迹”功能可以跟踪文档中所做的更改。痕迹可以包括添加、删除、移动和格式更改等。Word提供了“痕迹保留”功能,可以保留这些痕迹并在文档中显示出来。痕迹保留对于多人协作编辑同一份文档时非常有用,可以清楚地了解每个人对文档所做的修改。同时,痕迹保留也可以用于审阅和修改文档,帮助用户更轻松地进行修改和校对工作。用户可以通过“审阅”选项卡中的“修订”按钮来开启和关闭痕迹保留功能。

既然Word中的痕迹保留功能已经可以满足多人协作编辑同一份文档的需求,那为什么还需要强制留痕功能呢?原因主要有以下两点:

  • 很多普通用户不清楚留痕功能如何使用,不知道点击“审阅”选项卡中的“修订”按钮就可以开启留痕功能;
  • 部分的用户知道留痕功能,但是不愿意使用,故意关闭“审阅”选项卡中的“修订”状态;
  • 用户可以随意修改和处理其他人的痕迹,不受系统控制;

PageOffice通过封装Office的API,实现了强制留痕模式,PageOfficeCtrl对象webOpen方法的第二个参数使用docRevisionOnly就是强制留痕模式,在这种模式下,用户对文档做的任何修订都会被记录下来,无需用户手动开启留痕功能,并且用户也不能关闭留痕功能。不同用户对文档做的修订会自动使用不同的颜色标记。用户不能接受、拒绝或删除其他用户对此文档所做的任何修订。修订记录能够显示修订者的名字,修订时间及修订内容。痕迹所显示的用户名就是webOpen方法第三个参数所传递的用户名,一般使用真实的用户名,比如“张三”,不要用“zhangsan”这样的登录名。

由于强制留痕模式下用户不能接受、拒绝或删除其他用户对此文档所做的任何修订,所以经过多人审阅后的Word文档,需要进行核稿处理,清理文档中用户编辑过的所有痕迹。此时,可以使用PageOffice提供的核稿模式,PageOfficeCtrl对象的webOpen方法的第二个参数使用docAdmin,打开文档即可进入核稿模式,此时在痕迹上点右键,右键菜单中的“接受修订”、“拒绝修订”、“接受删除”、“拒绝删除”等项就都是可用状态了,核稿人员就可以根据文档中各用户的意见,对文档做修改并清除文件中的所有痕迹,整理为可发布的正式文件。有些办公系统需要将用户留痕审阅过的文件归档保存,以便后期查阅。因此开发人员可以编写程序,在进入核稿环节时,自动备份留痕文档。

显示痕迹列表效果

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

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

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

后端代码

PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
//webOpen的第一个参数支持能够输出下载文件的Url相对地址或者文件在服务器上的磁盘路径两种方式
//查看详细,请在本站搜索“PageOffice属性或方法中涉及到的URL路径或磁盘路径的说明”
poCtrl.webOpen("D:\\documents\\test.docx", OpenModeType.docRevisionOnly, "张三");

前端代码

  1. 在OnPageOfficeCtrlInit事件中添加隐藏和显示痕迹的按钮(根据实际业务需求处理即可);
OnPageOfficeCtrlInit() {
  pageofficectrl.AddCustomToolButton("隐藏痕迹", "hideRevision", 18);
  pageofficectrl.AddCustomToolButton("显示痕迹", "showRevision", 9);
},
  1. 实现自定义按钮所调用的js函数;
function showRevision() {
    pageofficectrl.ShowRevisions = true;
}
function hideRevision() {
    pageofficectrl.ShowRevisions = false;
}
  1. 获取痕迹列表
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();
}

参考链接
强制留痕模式编辑
显示痕迹列表效果

标签:uos,痕迹,str,国产,文档,key,date,word,留痕
From: https://www.cnblogs.com/qq742655/p/18298253

相关文章

  • WordPress给网站右侧边栏添加百度一下协助SEO优化
    前言大家在做网站的时候,seo会是一个问题,我们可以让用户在浏览我们网站的时候协助我们seo废话不多说,先看一下成品是什么样子的吧!效果演示作用这个小工具可以协助网站优化百度SEO,让用户在浏览我们网站的时候协助我们seo,最早是在emlog程序才有的,现在WordPress程序也是......
  • 实战Qt开发WordBN笔记软件#02 通过Gitee创建YourWordBN仓库;学会GIT常用指令,并实现多分
    01背景【WordBN字远笔记】是天恩软件工作室开发的一款免费笔记软件;WordBN基于VS2019、Qt6.5开发,使用QtQuick(QML)开发语言。本课程将以【WordBN字远笔记】的界面为实战基础,详细介绍如何基于Qt/QML开发语言,从零开始开发一套真正的程序,包括国际化、版本发布、安装包制作等项目......
  • 2024精品wordpress外贸网站推荐
    wordpress外贸英语企业展示类型网站,此主题支持多语言功能,询盘留言表单功能,适合做外贸独立站,竞价站等展示型网站,外贸出口传达客户信息的重要途径就是需要有一个官网,而wordpress是外贸网站必选程序,因为它的整个程序前端结构,是非常符合Google搜索引擎结构的。此主题的主要功能设......
  • 2024最新Zibll子比主题V7.7版本源码 开心版 | WordPress主题
    简介:2024最新Zibll子比主题V7.7版本源码开心版|WordPress主题安装教程在压缩包内V7.7更新日志:新功能新增数字翻页输入页码跳转的功能(注:总页数超过8页才会显示)新增后台批量设置文章阅读量、点赞数、显示布局等文章扩展功能新增后台批量设置论坛帖子阅读量、置顶、类......
  • 【专题】2024年国产AI大模型应用报告合集PDF分享(附原数据表)
    原文链接:tecdat.cn/?p=36958原文出处:拓端数据部落公众号进入21世纪初期,随着计算能力飞跃与大数据浪潮的席卷,AI大模型技术经历了从无到有的蜕变,从纯学术构想迅速转化为实际应用,其复杂性与功能性均实现了质的飞跃。特别是自2022年11月OpenAI推出ChatGPT以来,大模型技术正式步入公......
  • 修改Word文档的创建时间我使用简鹿文件重命名工具
    在日常生活或工作中,有时我们需要修改文件的创建时间以符合特定的需求或避免时间上的混淆。对于Word文档而言,虽然Word软件本身不提供直接修改文件创建时间的功能,但我们可以借助第三方工具来实现这一目的。简鹿文件重命名工具就是这样一款实用的软件,它不仅支持文件重命名,还......
  • 如何在 Windows 10 上恢复未保存的 Word 文档
    您是否整晚都在处理一个重要的word文件,但忘记保存它了?本文适合您。在这里,我们将解释如何恢复未保存的word文档。除此之外,您还将学习如何恢复已删除的word文档。从专业人士到高中生,每个人都了解丢失重要Word文件的痛苦。幸运的是,有多种方法可以恢复未保存和已删除的Wo......
  • Windows LAPS(Local Administrator Password Solution)是一种由微软提供的工具和解决方
    WindowsLAPS(LocalAdministratorPasswordSolution)是一种由微软提供的工具和解决方案,旨在管理Windows操作系统中本地管理员账户的密码。它的设计初衷是提高系统安全性,特别是防止在企业环境中多台计算机上使用相同的本地管理员密码所带来的安全风险。特点和工作原理个性化密......
  • 遥遥领先!鲲鹏ARM架构下国产数据同步能力大幅提升16.9倍
    在上篇文章《2.6倍!WhaleTunnel客户POC实景对弈DataX》发布之后,一个客户突然向我们控诉其苦DataX久矣,因为是在信创的鲲鹏ARMCPU上运行,每天同步需要很长时间,问我们可以不可以帮忙解决。提起信创ARMCPU,大数据同仁们是又爱又恨,爱是因为价格真的便宜,恨是因为做大数据任务真的是不......
  • WordPress基础之菜单导航栏设置
    菜单是WordPress的一项重要功能,方便用户快速打开网站页面,我们通常说的网站导航栏就是菜单。菜单通常显示在网站的顶部或者底部,以Apple官网的为例:这篇文章我们就学习下:如何添加、删除菜单;如何调整菜单顺序和层级;如何添加自定义链接菜单。1.如何增加、删除菜单前置要求:已有文章......