2015-10-16 111 views
0

有什麼辦法,我可以在Microsoft Word生成的文檔模板(.DOTX)比較字文檔(.docx)。比較文檔模板Word文檔文件(.docx)(.DOTX)

我想以編程方式做到這一點比較使用C#。

我想這兩個文件的字比較字,這樣我可以決定哪個模板的文檔所屬。我不只是想比較兩者的大小,但我也想比較內容。

通過這個比較我想得到以下結果。

  1. 從中文檔模板生成文檔。
  2. 在文檔模板,我要檢查,在哪個地方特定信息存儲。

    舉個例子,我想搜索一個人的通信信息,然後我想遍歷文檔,並檢查模板在哪個位置有地址的區域/部分(即頂部左上角,頂部中心,在一個段落,在車身等)

  3. 在相同的方式,我想太提取其他信息,比如鏈接到其他文檔等

  4. 讓我想從這些信息的位置之後。 Docx文件。

    說,如果我發現,在地址左上角和有五個環節指的是在五個不同的段落中的其他文件。然後我想要的是獲取地址並將其保存到一個變量。之後,我想將佔位符中的鏈接內容替換爲實際的超鏈接。即如果一個鏈接指的是Doc-A,那麼我不想僅僅顯示一個純文本,而是用A超鏈接替換爲Doc-A。

有什麼建議嗎?

謝謝。

回答

0

你的問題,而過於含糊,參與給一個很好的答案,但是...

  1. 要找出從模板的文檔生成的對象模型提供的屬性:Document.AttachedTemplate將返回完整的文件名稱。這肯定比逐字比較好(這也是非常耗時的)

  2. Word對象模型還提供了方法CompareDocuments(屬於Word.Application類)。這將「強調」兩個文件的文本內容的差異。

  3. 鏈接將在Document.Hyperlinks收集

  4. 獲取事物的位置被發現是有點禎與Word和它取決於你真正的「左上」的意思是,等會更好使用內容控件,表單域和/或書籤構建模板,以便您可以唯一地識別重要的部分。但是,Word確實提供了Range.get_Information方法,可以返回頁面上的相對位置和絕對位置,如果這是您真正想要的。