---------------------------------Aspose技术交流群(761297826)----------------------------— 比较MS Word文档是为了了解文档的两个版本之间的差异。
MS Word提供了一个内置选项来比较两个文档的内容但是,随着文档数量的增加,手动进行文档比较变得困难为了使此过程自动化,本文介绍了如何使用Java比较两个MS Word(DOC / DOCX)文档Aspose.Words for Java
www.evget.com/product/4116/download
![](http://ldjg88.com/zb_users/upload/2024/05/20240523092500171642750058335.png)
使用Java比较MS Word文档在MS Word文档比较中忽略格式设置目标文档以进行比较差异设置粒度以比较MS Word文档比较MS Word文档的Java APIAspose.Words for Java是功能强大的文档处理API,可以创建,读取,修改和转换MS Word文档。
此外,它还允许比较两个Word文档以及考虑或忽略内容的格式可以下载API或使用以下Maven配置进行安装。
![](http://ldjg88.com/zb_users/upload/2024/05/20240523092500171642750057937.webp)
使用Java比较MS Word文档以下是使用Aspose.Words for Java API执行简单Word文档比较的步骤使用Document类加载要比较的Word文档调用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。
在Word文档比较中忽略格式在某些情况下,文档具有适用于内容的不同格式在这种情况下,您宁愿只比较文本,而忽略格式,页眉/页脚,脚注,表格,注释等下面是比较两个MS Word文档时忽略文档格式的步骤使用Document类
加载要比较的Word文档创建一个CompareOptions类的对象设置CompareOptions.setIgnoreFormatting(true)使用Document.compare(Document,String,Date,CompareOptions)方法比较文档。
下面的代码示例演示如何比较MS Word文档,而忽略使用Java的内容格式// For complete examples and data files, please go to 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 now contains changes as 。
revisions. 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); // Relates to Microsoft Word "Show changes in" option in "Compare Documents"
dialog box. options.setTarget(ComparisonTargetType.NEW); docA.compare(docB, "user", new Date(), options);
设置粒度以比较Word文档可以在比较两个MS Word文档时设置更改的粒度这可以使用CompareOptions.setGranularity()属性完成以下是可能的粒度选项CHAR_LEVELWORD_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);。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。