您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2025/12/30 9:20:46发布26次查看
在 word 文档中启用跟踪更改功能后,会记录文档中的所有编辑行为,例如插入、删除、替换和格式更改。对插入或删除的内容,可通过本文中介绍的方法来获取。
引入jar方法1手动引入:将free spire.doc for java下载到本地,解压,找到lib文件夹下的spire.doc.jar文件。在idea中打开如下界面,将本地路径中的jar文件引入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("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中所有的插入和删除修订的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product