一、用于比较 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 文档比较的步骤。
- 使用Document类加载要比较的文档。
- 调用Document.compare(Document, String, Date)方法将文档与作为参数传递的文档进行比较。
以下代码示例显示了如何使用 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 文档时忽略文档格式的步骤。
- 使用Document类加载要比较的文档。
- 创建CompareOptions类的对象。
- 设置CompareOptions.setIgnoreFormatting(true)。
- 使用Document.compare(Document, String, Date, CompareOptions)方法比较文档。
以下代码示例显示了如何使用 Java 比较忽略内容格式的 MS Word 文档。
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-JavaString 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 now contains changes as revisions.docA.compare(docB, "user", new Date(), options);if (docA.getRevisions().getCount() == 0)System.out.println("Documents are equal");elseSystem.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);// Relates to Microsoft Word "Show changes in" option in "Compare Documents" dialog box.options.setTarget(ComparisonTargetType.NEW);docA.compare(docB, "user", new Date(), options);
五、设置粒度以在 Java 中比较 Word 文件
您还可以在比较两个 MS Word 文档时设置更改的粒度。这可以使用CompareOptions.setGranularity()属性来完成。以下是可能的粒度选项。
- 字符级别
- WORD_LEVEL
以下代码示例显示了在使用 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产品
点此获取更多Aspose产品信息 或 加入Aspose技术交流群()
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!