Aspose.Words for C++功能示例演示:如何比較兩個Word文檔

Aspose.Words for C ++是一種高級Word文檔處理API,用於執行各類文檔處理任務。API直接在您本身的C ++應用程序中提供文檔格式化,操做,郵件合併,水印和更多功能,而無需Microsoft Word。API支持大多數Microsoft Word格式進行處理。測試

近期更新了Aspose.Words for C ++ v19.6,添加了對Document.Compare功能的支持。其中,能夠利用Aspose.Words for C ++ 19.6 API 比較兩個Word文檔。接下來咱們用示例來演示講解。>>歡迎下載Aspose.Words for C ++ 19.6體驗spa

新版可使用Document.Compare方法比較兩個Word文檔以查看它們之間的區別。此方法模仿Microsoft Word的比較功能,並生成文檔差別做爲許多編輯和格式修訂。主要的想法是,若是咱們拒絕全部修訂,那麼咱們獲得的文件與原始文件相同。相反,若是咱們接受全部修訂,那麼咱們將得到最終(比較目標)文檔。code

在這裏有一些通常限制:ci

  • 在調用此方法以前,要比較的文檔不得進行修訂。
  • 標記 - 僅限於SmartTag。其餘標記徹底被忽略。
  • 比較回退形狀,而不是實際的DML比較。

重要說明:實際上,「相等」在這裏的意思是比較法不能將更改表示爲修訂。通常來講,這意味着文檔文本和文本格式是相同的。可是文檔之間可能還有其餘不一樣之處。例如,Word只支持樣式的格式修改,咱們不能表示樣式的插入/刪除。所以文檔能夠有不一樣的樣式集,而Compare方法仍然不會產生修訂。資源

下面的示例展現了正常的比較用例:文檔

  //從磁盤加載文檔。
System::SharedPtrdocA = System::MakeObject(dataDir + u "TestFile.doc" );
System::SharedPtrdocB = System::MakeObject(dataDir + u "TestFile - Copy.doc" );
 
// DocA如今包含更改做爲修訂。
docA->Compare(docB, u "User" , System::DateTime::get_Now());

下面的示例演示如何測試Word文檔是否「相等」:get

System::SharedPtrdocA = System::MakeObject(dataDir + u "TestFile.doc" );
System::SharedPtrdocB = System::MakeObject(dataDir + u "TestFile - Copy.doc" );
 
// DocA如今包含更改做爲修訂。
if  (docA->get_Revisions()->get_Count() ==  0 )
     std::cout <<  "Documents are equal"  << std::endl << std::endl;
else
     std::cout <<  "Documents are not equal"  << std::endl << std::endl;

歡迎加入ASPOSE技術交流QQ羣( 642018183 ),各種資源及時分享,歡迎交流討論!io

相關文章
相關標籤/搜索