• <menu id="w2i4a"></menu>
  • logo Aspose.Words開發(fā)者指南

    文檔首頁>>Aspose.Words開發(fā)者指南>>Aspose.Words for .NET使用文檔教程(4):如何比較兩個(gè)Word文檔

    Aspose.Words for .NET使用文檔教程(4):如何比較兩個(gè)Word文檔


    Aspose.Words For .Net是一種高級Word文檔處理API,用于執(zhí)行各種文檔管理和操作任務(wù)。API支持生成,修改,轉(zhuǎn)換,呈現(xiàn)和打印文檔,而無需在跨平臺應(yīng)用程序中直接使用Microsoft Word。此外,API支持所有流行的Word處理文件格式,并允許將Word文檔導(dǎo)出或轉(zhuǎn)換為固定布局文件格式和最常用的圖像/多媒體格式。

    【下載Aspose.Words for .NET最新試用版】

    如何比較兩個(gè)word文檔


    我們可以使用Document.Compare方法比較兩個(gè)文檔以查看它們之間的區(qū)別。此方法模仿Microsoft Word的比較功能,并生成文檔差異作為許多編輯和格式修訂。主要的想法是,如果我們拒絕所有修訂,那么我們得到的文件與原始文件相同。相反,如果我們接受所有修訂,那么我們將獲得最終(比較目標(biāo))文檔。

    限制

    在這里,有一些普遍的限制:

    • 在調(diào)用此方法之前,正在比較的文檔必須沒有修訂。
    • 標(biāo)記——僅限于SmartTag,其他標(biāo)記完全被忽略。
    • 比較回退形狀,而不是實(shí)際的Dml比較。


    有一條關(guān)于“相等”的重要說明:實(shí)際上,“相等”在這里的意思是比較法不能將更改表示為修訂。一般來說,這意味著文檔文本和文本格式是相同的。但是文檔之間可能還有其他不同之處。例如,Word只支持樣式的格式修改,我們不能表示樣式的插入/刪除。因此文檔可以有不同的樣式集,而Compare方法仍然不會產(chǎn)生修訂。


    下面的示例顯示了正常的比較用例:

    // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
    Document docA = new Document(dataDir + "TestFile.doc");
    Document docB = new Document(dataDir + "TestFile - Copy.doc");
    // DocA now contains changes as revisions. 
    docA.Compare(docB, "user", DateTime.Now);


    下面的例子展示了如何測試Word文檔是否“相等”:

    // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
    Document docA = new Document(dataDir + "TestFile.doc");
    Document docB = new Document(dataDir + "TestFile - Copy.doc");
    // DocA now contains changes as revisions. 
    docA.Compare(docB, "user", DateTime.Now);
    if (docA.Revisions.Count == 0)
        Console.WriteLine("Documents are equal");
    else
        Console.WriteLine("Documents are not equal");

    比較Word文檔并忽略文檔格式

    在比較文檔時(shí),可以忽略文檔格式、頁眉-頁腳、字段、腳注、表、文本框、注釋和大小寫更改。設(shè)置CompareOptions的值。屬性IgnoreFormatting設(shè)置為true,以忽略文檔格式設(shè)置。當(dāng)CompareOptions時(shí),頁眉和頁腳內(nèi)容將被忽略。IgnoreHeadersAndFooters被設(shè)置為true。下面的代碼示例顯示了如何忽略文檔的格式化和頁眉頁腳內(nèi)容:

    // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
    Document docA = new Document(dataDir + "TestFile.doc");
    Document docB = new Document(dataDir + "TestFile - Copy.doc");
    
    CompareOptions options = new CompareOptions();
    options.IgnoreFormatting = true;
    options.IgnoreHeadersAndFooters = true;
    options.IgnoreCaseChanges = true;
    options.IgnoreTables = true;
    options.IgnoreFields = true;
    options.IgnoreComments = true;
    options.IgnoreTextboxes = true;
    options.IgnoreFootnotes = true;
    
    // DocA now contains changes as revisions. 
    docA.Compare(docB, "user", DateTime.Now, options);
    if (docA.Revisions.Count == 0)
        Console.WriteLine("Documents are equal");
    else
        Console.WriteLine("Documents are not equal");

    設(shè)置比較差異的目標(biāo)文檔

    在“比較文檔”對話框中,MS Word有“顯示更改”選項(xiàng),比較結(jié)果取決于此選項(xiàng)。Target屬性用于此目的。此屬性指定比較期間將哪個(gè)文檔應(yīng)使用作為目標(biāo)。例如,這個(gè)選項(xiàng)和IgnoreFormatting設(shè)置一起決定了必須使用哪個(gè)文檔作為相等文本范圍的格式化源。ComparisonTargetType枚舉用于指定將在比較期間使用的基本文檔。下面的代碼示例展示了如何為兩個(gè)文檔的比較設(shè)置目標(biāo)文檔:

    // For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
    Document docA = new Document(dataDir + "TestFile.doc");
    Document docB = new Document(dataDir + "TestFile - Copy.doc");
    
    CompareOptions options = new CompareOptions();
    options.IgnoreFormatting = true;
    // Relates to Microsoft Word "Show changes in" option in "Compare Documents" dialog box. 
    options.Target = ComparisonTargetType.New;
    
    docA.Compare(docB, "user", DateTime.Now, options);


    為你推薦:Aspose專題 - Aspose最新資源合集


    現(xiàn)在購買正版授權(quán),您可有???!6月1日-6月30日訂購Aspose.Words系列產(chǎn)品,最高立減30000元!>>立即進(jìn)入搶購?fù)ǖ?/strong>


    850X100.png

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();