package com.ruoyi.common.filecompare; import com.spire.doc.DifferRevisions; import com.spire.doc.Document; import com.spire.doc.fields.TextRange; import com.spire.ms.System.Collections.Generic.List; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; public class SpireDoc { public static Set compare(String file1, String file2) { Document doc1 = new Document(); Document doc2 = new Document(); Set set = new LinkedHashSet<>(); try { doc1.loadFromFile(file1); doc2.loadFromFile(file2); doc1.compare(doc2, "Host"); // doc1.saveToFile("C:\\Users\\admin\\Desktop\\Result.docx"); DifferRevisions differRevisions = new DifferRevisions(doc1); List insertRevisionsList = differRevisions.getInsertRevisions(); List deleteRevisionsList = differRevisions.getDeleteRevisions(); int m = 0; int n = 0; for (int i = 0; i < insertRevisionsList.size(); i++) { if (insertRevisionsList.get(i) instanceof TextRange) { m += 1; //获取指定插入改动,并获取插入的具体内容 TextRange textRange = (TextRange)insertRevisionsList.get(i) ; set.add("插入 #" + m + ":" + textRange.getText()); } } for (int i = 0; i < deleteRevisionsList.size() ; i++) { if (deleteRevisionsList.get(i) instanceof TextRange) { n += 1; //获取指定删除改动,并获取删除的具体内容 TextRange textRange = (TextRange) deleteRevisionsList.get(i) ; set.add("删除 #" + n + ":" + textRange.getText()); } } }catch (Exception e){ e.printStackTrace(); }finally { doc1.close(); doc2.close(); return set; } } }