簡體   English   中英

以編程方式修復“Word 在損壞中發現不可讀的內容...”

[英]Fixing "Word found unreadable content in corrupt..." programmatically

我正在從另一個系統獲取 OpenXml 生成的 docx 文件。 當嘗試使用Microsoft.Office.Interop.Word.Application.Open(filename)在我的應用程序中打開文件時,我得到一個The file appears to be corrupted異常。

當我手動打開 docx 文件時,我看到一個Word found unreadable content in corrupt xxx.docx. Do you want to recover the contents of this document? If you trust the source of this document, click Yes. Word found unreadable content in corrupt xxx.docx. Do you want to recover the contents of this document? If you trust the source of this document, click Yes. 迅速的。 當我單擊Yes ,它能夠在一個新的未保存的 Word 文件中恢復該文檔。

我曾嘗試將之前的corruption.docx 文件的document.xml 與recovered.docx 文件的document.xml 進行比較。 雖然兩個 document.xmls 之間有許多格式更改(關閉 xml-tags 之間的額外空間),主要區別在於 AltChunk 實際上嵌入到了 recovery.docx 中,並且有幾個空的“run”標簽被刪除了。 我不確定是什么導致文件被認為已損壞,因為這些文件似乎不應該損壞。

也就是說,當我單擊“ Yes時,有沒有辦法運行發生的任何進程...Do you want to recover the contents of this document?...通過我的應用程序以編程方式提示; 這會是理想的嗎? 不太好,有沒有辦法告訴 xml 的哪些部分實際上在 word doc 中損壞了?

也就是說,有沒有辦法運行當我單擊“是”時發生的任何進程...是否要恢復此文檔的內容?...通過我的應用程序以編程方式提示; 這會是理想的嗎? 不太好,有沒有辦法告訴 xml 的哪些部分實際上在 word doc 中損壞了?

  1. 不,那不是暴露在外面
  2. 理論上,驗證是可能的。 但考慮到涉及 AltChunk,這可能不會出現問題。 AltChunk 的內容在 Word 處理文檔之前不會集成,此時它已集成。 如果出現的內容“破壞”了某些內容,則驗證將無法識別。

在這種特殊情況下,我可能會嘗試手動刪除 AltChunk(這些部分位於 zip 文件中的幾個位置)並查看文件是否可以在沒有它的情況下打開。 但是,如果您對 Word Open XML zip 包不是很熟悉,最好詢問文檔的制作者/來源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM