js实现类似word修订的功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现类似word修订的功能相关的知识,希望对你有一定的参考价值。

线上editor编辑器没找到这个功能,图片是线上编辑器模拟的效果

word具有修订功能,具体操作如下:

一、使用工具:word2010

二、操作步骤:

1、首先可以对修订内容进行设置,点击“审阅”中的“修订”下方的“修订选项”,如图:

2、然后对里面的选项进行修改设置,设置好后按“确定”按钮,如图:

3、然后选择要进行修订的文字或段落,点击“审阅”中的“修订”,这样就开始对文档进行修订了,如图:

参考技术A 。。。我之前写过一个仿word修订功能,具体代码晚上我放到GitHub或者codepen追问

坐等,多谢,麻烦了

追答

昨晚加班,今天看看有没有时间?你是哪家公司的?为什么会有这种需求?

追问

小公司……就是产品经理想增加用户体验加的一个功能,没关系,不很着急的

参考技术B 有github么同求

Java 获取Word中的所有插入和删除修订

在 Word 文档中启用跟踪更改功能后,会记录文档中的所有编辑行为,例如插入、删除、替换和格式更改。对插入或删除的内容,可通过本文中介绍的方法来获取。

引入Jar

方法1

手动引入:将Free Spire.Doc for Java下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:​

Java

方法2

通过Maven仓库下载。如下配置pom.xml:

<repositories>
<repository>
<id>com.e-iceblue</id>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc.free</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>

获取插入、删除的修订

  • 创建一个​Document ​实例并使用​Document.loadFromFile() ​方法加载一个示例 Word 文档。
  • 创建一个​StringBuilder​ 对象,然后使用​StringBuilder.append() ​方法记录据。
  • 遍历所有​Section​ 和 section 中 body 下的每一个元素。
  • 使用​Paragraph.isInsertRevision()​ 方法确定段落是否为插入修订。如果是,请使用​Paragraph.getInsertRevision()​ 方法获取插入修订。然后使用​EditRevision.getType()​ 方法和​EditRevision.getAuthor() ​方法获取修订类型、作者。
  • 使用​Paragraph.inDeleteRevision()​ 方法确定段落是否为删除修订。如果是,请使用​Paragraph.getDeleteRevision()​ 方法获取删除修订。然后使用​EditRevision.getType()​ 方法和​EditRevision.getAuthor()​ 方法获取修订类型、作者。
  • 遍历段落中的所有元素以获取文本范围的修订。
  • 使用​FileWriter.write()​ 方法将StringBuilder 的内容写入 txt 文档。

Java

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TextRange;
import com.spire.doc.formatting.revisions.EditRevision;
import com.spire.doc.formatting.revisions.EditRevisionType;

import java.io.FileWriter;

public class GetAllRevisions
public static void main(String[] args)throws Exception
//加载示例 Word 文档
Document document = new Document();
document.loadFromFile("test.docx");

//创建一个 StringBuilder 对象以获取插入修订
StringBuilder insertRevision = new StringBuilder();
insertRevision.append("INSERT REVISIONS:"+"\\n");
int index_insertRevision = 0;

//创建一个 StringBuilder 对象以获取删除修订
StringBuilder deleteRevision = new StringBuilder();
deleteRevision.append("DELETE REVISIONS:"+"\\n");
int index_deleteRevision = 0;

//遍历所有节
for (Section sec : (Iterable<Section>) document.getSections())

//遍历section中body下的元素
for(DocumentObject docItem : (Iterable<DocumentObject>)sec.getBody().getChildObjects())

if (docItem instanceof Paragraph)

Paragraph para = (Paragraph)docItem;
//确定段落是否为插入修订
if (para.isInsertRevision())

index_insertRevision++;
insertRevision.append("Index: " + index_insertRevision + " \\n");
//获取插入修订
EditRevision insRevison = para.getInsertRevision();

//获取插入的段落文本内容
String insertRevisionString = para.getText();

//获取插入修订类型
EditRevisionType insType = insRevison.getType();

insertRevision.append("Type: " + insType + " \\n");
//获取插入修订作者
String insAuthor = insRevison.getAuthor();
insertRevision.append("Author: " + insAuthor + " \\n" + "InsertPara:"+ insertRevisionString );



//确定段落是否为删除修订
if (para.isDeleteRevision())

index_deleteRevision++;
deleteRevision.append("Index: " + index_deleteRevision + " \\n");
EditRevision delRevison = para.getDeleteRevision();
EditRevisionType delType = delRevison.getType();
deleteRevision.append("Type: " + delType + " \\n");
String delAuthor = delRevison.getAuthor();
deleteRevision.append("Author: " + delAuthor + " \\n");

//遍历段落中的元素
for(DocumentObject obj : (Iterable<DocumentObject>)para.getChildObjects())

if (obj instanceof TextRange)

TextRange textRange = (TextRange)obj;

//确定文本范围是否为删除修订,并获取删除修订的类型、作者及删除的文本内容。
if (textRange.isDeleteRevision())

index_deleteRevision++;
deleteRevision.append("Index: " + index_deleteRevision +" \\n");
EditRevision delRevison = textRange.getDeleteRevision();
EditRevisionType delType = delRevison.getType();
deleteRevision.append("Type: " + delType+ " \\n");
String delAuthor = delRevison.getAuthor();
deleteRevision.append(java怎么实现导出数据后放到word文档中,并且可以保存到本硬盘上(类似于百度文库里面的下载功能)

信创办公--基于WPS的Word最佳实践系列(邮件合并实现邮件批量发送)

本机 Office 命令的 Word 功能区自定义

windows&lunix下node.js实现模板化生成word文件

js实现类似于百度学术的高级检索功能

基于WPS的Word最佳实践系列(修订审阅与文档保护)