比较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 文档。您可以使用 documentation 探索有关 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 创建 Rich Word 文档MS Word DOC/DOCX to PDF in Java
PNG 到 C# .NET 中的 WordJPG 到 C# .NET 中的 WordC# 中的图像到 Word
C# 中的 Word 到 HTMLWord DOCX to Markdown in Java从 Java 中的 Word DOC 中提取图像
Word DOC to Markdown in JavaWord DOCX DOCX to Markdown in C#用Java从Word文档中提取文本
使用 C# .NET 合并 MS Word 文档C# 中的 Word DOC 到 PNG、JPEG、BMP、GIF 或 TIFFJava 中 Word DOC 到 PNG、JPEG、BMP、GIF 或 TIFF