文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-29 20:33

关注

这篇文章主要介绍“Java怎么获取Word中所有的插入和删除修订”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java怎么获取Word中所有的插入和删除修订”文章能帮助大家解决问题。

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

引入Jar

方法1

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

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

方法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>

获取插入、删除的修订

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("Author: " + delAuthor + " \n");String deletetext = textRange.getText();deleteRevision.append("Delete text:" + deletetext +" \n");}//确定文本范围是否为插入修订,并获取插入修订的类型、作者及文本内容。else if (textRange.isInsertRevision()){index_insertRevision++;insertRevision.append("Index: " + index_insertRevision +" \n");EditRevision insRevison = textRange.getInsertRevision();EditRevisionType insType = insRevison.getType();insertRevision.append("Type: " + insType + " \n");String insAuthor = insRevison.getAuthor();insertRevision.append("Author: " + insAuthor + " \n");String insertText = textRange.getText();insertRevision.append("insertText:"+insertText);}}}}}}//保存插入修订内容为txt 文件FileWriter writer1 = new FileWriter("insertRevisions.txt");writer1.write(insertRevision.toString());writer1.flush();writer1.close();//保存删除修订内容为txt 文件FileWriter writer2 = new FileWriter("deleteRevisions.txt");writer2.write(deleteRevision.toString());writer2.flush();writer2.close();}}

获取结果:

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

关于“Java怎么获取Word中所有的插入和删除修订”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯