我們已經討論了兩個 Word 文檔的比較,即使它們受密碼保護。如果要比較的文件多於兩個怎麼辦?在本文中,我們將了解如何在 Java 中比較多個 Word 文檔。此外,我們將學習如何接受或拒絕每個已識別的更改以獲得所需的輸出。

比較多個 Word 文檔以查找 Java 中的差異

最近的簡短系列文章已經涵蓋了 Java 方法如何:

到本文結束時,您還將很好地了解如何:

如果您的開發環境尚未準備好執行比較,讓我們快速準備一下。

用於比較兩個或多個 Word 文檔的 Java 庫 – 安裝

我希望您現在已經熟悉文檔比較 Java API。我將使用相同的 GroupDocs.Comparison 繼續前進。您可以使用以下配置下載 或快速檢查基於 maven 的應用程序的開發環境:

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>22.3</version> 
</dependency>

現在讓我們跳到目標並開始比較多個 Word 文件。

在 Java 中比較兩個以上的 Word 文件

比較多個文件與只比較兩個文件沒有太大區別。繼續向比較器添加更多文件,最後,像比較兩個文件時一樣點擊比較。以下是在 Java 中比較兩個以上的 Word 文檔以識別更改並突出顯示發現的差異的步驟。

  • 使用 Comparer 類加載第一個 DOC/DOCX 文件。
  • 使用 add() 方法將第二個文件添加到 Comparer。
  • 使用相同/相似的 add() 方法繼續向 Comparer 添加更多文檔。
  • 調用 compare 方法來執行比較並獲取已識別更改的摘要。

下面的示例演示如何在 Java 中比較多個 Word 文件並在生成的文檔中獲取更改。

/*
 * 比較多個 Word 文檔
 */
try (Comparer comparer = new Comparer("path/document-1.docx")) {
    comparer.add("path/document-2.docx");
    comparer.add("path/document-3.docx");
    final Path resultPath = comparer.compare("path/compared-result.docx");
}

使用 Java 接受或拒絕 Word 文件中已識別的更改

可以肯定的是,您熟悉 Microsoft Word 的跟踪更改功能。與此類似,您可以編程方式接受或拒絕最終輸出文檔的每個已識別更改。以下步驟顯示瞭如何比較並接受或拒絕 Word 文檔的 DOC/DOCX 文件中已識別的更改。

  • 使用 Comparer 類加載源 DOC/DOCX 文檔。
  • 使用 add() 方法將第二個 Word 文檔添加到 Comparer。
  • 使用 compare() 方法比較加載的文件。
  • 使用 getChanges() 方法獲取已識別差異的集合。
  • 現在遍歷變化,分析,然後可以相應地設置每個變化的ComparisonAction
    • 將其設置為 Accept 以同意更改。
    • 將其設置為 Reject 以拒絕更改。
  • 調用 applyChanges() 方法以獲取包含更改的修改後的文檔。

以下 Java 代碼片段比較兩個 DOCX 文檔,然後顯示如何接受和拒絕識別的更改。

/*
 * 比較 Word 文檔 - 在 Java 中接受或拒絕更改
 */
try (Comparer comparer = new Comparer("path/document-1.docx")) {
    comparer.add("path/document-2.docx");
    
    final Path resultPath = comparer.compare("path/compared-result.docx");
    ChangeInfo[] changes = comparer.getChanges();

    changes[0].setComparisonAction(ComparisonAction.REJECT);
    changes[1].setComparisonAction(ComparisonAction.ACCEPT);
    comparer.applyChanges(resultPath, new ApplyChangeOptions(changes));
}

獲取免費的 API 許可證

您可以 獲得免費的臨時許可證 來使用沒有評估限制的 API 來比較多個 Word 文檔。

構建您自己的比較應用程序

以下是一些重要鏈接,可幫助您構建自己的文檔比較應用程序。

特點 | 文檔 | API 參考 | 運行示例-源代碼 | 支持 | 發行說明

也可以看看