比較Java中的word文檔

執行 MS Word 文檔的比較以了解文檔的兩個版本之間的差異。 MS Word 提供了一個內置選項來比較兩個文檔的內容。然而,隨著文檔數量的增加,手動進行文檔比較變得困難。為了自動執行此過程,本文介紹瞭如何使用 Java 比較兩個 MS Word (DOC/DOCX) 文檔。

用於比較 MS Word 文檔的 Java API

Aspose.Words for Java 是一個功能強大的文檔操作 API,可讓您創建、讀取、修改和轉換 MS Word 文檔。此外,它允許您比較兩個 Word 文檔,同時考慮或忽略內容的格式。您可以下載 API 或使用 Maven 配置安裝它。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.9</version>
    <classifier>jdk17</classifier>
</dependency>

使用 Java 比較 MS Word 文檔

以下是使用 Aspose.Words for Java API 執行簡單 Word 文檔比較的步驟。

以下代碼示例顯示瞭如何使用 Java 比較兩個 MS Word 文檔。

Document docA = new Document(dataDir + "DocumentA.doc");
Document docB = new Document(dataDir + "DocumentB.doc");
docA.compare(docB, "user", new Date()); // docA now contains changes as revisions

Java Word 文檔比較 - 忽略格式

可能會出現文檔對內容應用不同格式的情況。在這種情況下,您更願意只比較文本而忽略格式、頁眉/頁腳、腳註、表格、註釋等。以下是在比較兩個 MS Word 文檔時忽略文檔格式的步驟。

以下代碼示例顯示瞭如何使用 Java 比較忽略內容格式的 MS Word 文檔。

// 有關完整示例和數據文件,請訪問 https://github.com/aspose-words/Aspose.Words-for-Java
String dataDir = Utils.getDataDir(CompareTwoWordDocumentswithCompareOptions.class);

com.aspose.words.Document docA = new com.aspose.words.Document(dataDir + "DocumentA.doc");
com.aspose.words.Document docB = new com.aspose.words.Document(dataDir + "DocumentB.doc");

com.aspose.words.CompareOptions options = new com.aspose.words.CompareOptions();
options.setIgnoreFormatting(true);
options.setIgnoreHeadersAndFooters(true);
options.setIgnoreCaseChanges(true);
options.setIgnoreTables(true);
options.setIgnoreFields(true);
options.setIgnoreComments(true);
options.setIgnoreTextboxes(true);
options.setIgnoreFootnotes(true);

// DocA 現在包含作為修訂的更改。
docA.compare(docB, "user", new Date(), options);
if (docA.getRevisions().getCount() == 0)
    System.out.println("Documents are equal");
else
    System.out.println("Documents are not equal");

為比較差異設置目標 Word 文檔

Aspose.Words for Java 還允許您在比較期間指定源 Word 文檔。為此,您可以使用與 MS Word 的“顯示更改”選項相關的 CompareOptions.setTarget() 屬性。以下代碼示例顯示瞭如何在比較中指定目標文檔。

Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");

CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// 與 Microsoft Word“比較文檔”對話框中的“顯示更改”選項相關。
options.setTarget(ComparisonTargetType.NEW);

docA.compare(docB, "user", new Date(), options);

設置粒度以在 Java 中比較 Word 文件

您還可以在比較兩個 MS Word 文檔時設置更改的粒度。這可以使用 CompareOptions.setGranularity() 屬性來完成。以下是可能的粒度選項。

以下代碼示例顯示了在使用 Java 比較 MS Word 文檔時如何設置粒度。

DocumentBuilder builderA = new DocumentBuilder(new Document());
DocumentBuilder builderB = new DocumentBuilder(new Document());

builderA.writeln("This is A simple word");
builderB.writeln("This is B simple words");

CompareOptions co = new CompareOptions();
co.setGranularity(Granularity.CHAR_LEVEL);

builderA.getDocument().compare(builderB.getDocument(), "author", new Date(), co);

結論

在本文中,您了解瞭如何使用 Java 在各種情況下比較兩個 MS Word 文檔。您可以使用 文檔 探索更多關於 Aspose.Words for Java 的信息。

免費試用

Aspose 提供臨時許可證 供您免費試用其 API。你可以得到你的評估 Aspose.Words for Java。

也可以看看

在 C# .NET 中將 DOC/DOCX 轉換為 JPG在 Java 中將 DOC/DOCX 轉換為 JPG在 C# .NET 中將 DOC/DOCX 轉換為 PNG
在 Java 中將 DOC/DOCX 轉換為 PNG在 C# 中將 DOCX 轉換為 HTML在 Python 中將 DOCX 轉換為 TXT
使用 Java 合併 MS Word 文檔在 Java 中創建豐富的 Word 文檔Java 中的 MS Word DOC/DOCX 到 PDF
PNG 到 C# .NET 中的 Word在 C# .NET 中將 JPG 轉為 WordC# 中的圖像到 Word
C# 中的 Word 到 HTMLWord DOCX 到 Java 中的 Markdown用 Java 從 Word DOC 中提取圖像
Word DOC 到 Java 中的 MarkdownC# 中的 Word DOC DOCX 到 Markdown在 Java 中從 Word 文檔中提取文本
使用 C# .NET 合併 MS Word 文檔在 C# 中將 Word DOC 轉換為 PNG、JPEG、BMP、GIF 或 TIFF在 Java 中將 Word DOC 轉為 PNG、JPEG、BMP、GIF 或 TIFF