SpireDoc.java 2.0 KB

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