Word處理控件Aspose.Words功能演示:使用Java比較MS Word文檔
比較MS Word文檔是為了了解文檔的兩個版本之間的差異。MS Word提供了一個內(nèi)置選項來比較兩個文檔的內(nèi)容。但是,隨著文檔數(shù)量的增加,手動進行文檔比較變得困難。
為了使此過程自動化,本文介紹了如何使用Java比較兩個MS Word(DOC / DOCX)文檔。
>>如果想要測試這項新功能,可點擊這里下載最新版試用。(安裝包僅提供部分功能,并設(shè)置限制,如需試用完整功能請申請免費授權(quán)。)
- 使用Java比較MS Word文檔
- 在MS Word文檔比較中忽略格式
- 設(shè)置目標文檔以進行比較差異
- 設(shè)置粒度以比較MS Word文檔
比較MS Word文檔的Java API
Aspose.Words for Java是功能強大的文檔處理API,可以創(chuàng)建,讀取,修改和轉(zhuǎn)換MS Word文檔。此外,它還允許比較兩個Word文檔以及考慮或忽略內(nèi)容的格式??梢?a href="http://www.xiangyinys.com/product/4116/download" target="_blank">下載API或使用以下Maven配置進行安裝。
使用Java比較MS Word文檔
以下是使用Aspose.Words for Java API執(zhí)行簡單Word文檔比較的步驟。
- 使用Document類加載要比較的Word文檔。
- 調(diào)用Document.compare(Document,String,Date)方法將文檔與作為參數(shù)傳遞的文檔進行比較。
下面的代碼示例演示如何使用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文檔比較中忽略格式
在某些情況下,文檔具有適用于內(nèi)容的不同格式。在這種情況下,您寧愿只比較文本,而忽略格式,頁眉/頁腳,腳注,表格,注釋等。下面是比較兩個MS Word文檔時忽略文檔格式的步驟。
- 使用Document類加載要比較的Word文檔。
- 創(chuàng)建一個CompareOptions類的對象。
- 設(shè)置CompareOptions.setIgnoreFormatting(true)。
- 使用Document.compare(Document,String,Date,CompareOptions)方法比較文檔。
下面的代碼示例演示如何比較MS Word文檔,而忽略使用Java的內(nèi)容格式。
// 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");
設(shè)置目標Word文檔以進行比較差異
Aspose.Words for Java還允許您在比較過程中指定源Word文檔。為此,您可以使用與MS Word的“顯示更改”選項相關(guān)的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);
設(shè)置粒度以比較Word文檔
可以在比較兩個MS Word文檔時設(shè)置更改的粒度。這可以使用CompareOptions.setGranularity()屬性完成。以下是可能的粒度選項。
- CHAR_LEVEL
- WORD_LEVEL
以下代碼示例顯示了使用Java比較MS Word文檔時如何設(shè)置粒度。
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);
還想要更多嗎?您可以點擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢和咨詢。