SpireDoc.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.ruoyi.common.filecompare;
  2. import com.spire.doc.DifferRevisions;
  3. import com.spire.doc.Document;
  4. import com.spire.doc.fields.TextRange;
  5. import com.spire.ms.System.Collections.Generic.List;
  6. import java.util.HashSet;
  7. import java.util.LinkedHashSet;
  8. import java.util.Set;
  9. public class SpireDoc {
  10. public static Set<String> compare(String file1, String file2) {
  11. Document doc1 = new Document();
  12. Document doc2 = new Document();
  13. Set<String> set = new LinkedHashSet<>();
  14. try {
  15. doc1.loadFromFile(file1);
  16. doc2.loadFromFile(file2);
  17. doc1.compare(doc2, "Host");
  18. // doc1.saveToFile("C:\\Users\\admin\\Desktop\\Result.docx");
  19. DifferRevisions differRevisions = new DifferRevisions(doc1);
  20. List insertRevisionsList = differRevisions.getInsertRevisions();
  21. List deleteRevisionsList = differRevisions.getDeleteRevisions();
  22. int m = 0;
  23. int n = 0;
  24. for (int i = 0; i < insertRevisionsList.size(); i++)
  25. {
  26. if (insertRevisionsList.get(i) instanceof TextRange)
  27. {
  28. m += 1;
  29. //获取指定插入改动,并获取插入的具体内容
  30. TextRange textRange = (TextRange)insertRevisionsList.get(i) ;
  31. set.add("插入 #" + m + ":" + textRange.getText());
  32. }
  33. }
  34. for (int i = 0; i < deleteRevisionsList.size() ; i++)
  35. {
  36. if (deleteRevisionsList.get(i) instanceof TextRange)
  37. {
  38. n += 1;
  39. //获取指定删除改动,并获取删除的具体内容
  40. TextRange textRange = (TextRange) deleteRevisionsList.get(i) ;
  41. set.add("删除 #" + n + ":" + textRange.getText());
  42. }
  43. }
  44. }catch (Exception e){
  45. e.printStackTrace();
  46. }finally {
  47. doc1.close();
  48. doc2.close();
  49. return set;
  50. }
  51. }
  52. }