以编程方式解决“ Word发现无法读取的内容已损坏……”

问题描述 投票:0回答:1

我正在从另一个系统获取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.提示。当我单击Yes时,它可以在新的未保存Word文件中恢复文档。

我已经尝试将先前的rupture.docx文件的document.xml与recovery.docx文件的document.xml进行比较。尽管两个document.xml之间有许多格式更改(关闭xml标签之间有多余的空格),但主要区别是AltChunk实际上已嵌入到restore.docx中,并且删除了几个空的“运行”标签。我不确定是什么原因导致文件被视为损坏,因为那些文件看起来不应该。

就是说,当我通过应用程序以编程方式单击Yes提示时,是否有一种方法可以运行任何过程?这将是理想的吗?不太可取的是,有没有一种方法可以在单词doc中分辨出xml的哪些部分实际上已损坏?

.net ms-word openxml office-interop
1个回答
1
投票
也就是说,有一种方法可以运行我单击时发生的任何过程是的...要恢复此内容吗文档?...通过我的应用程序以编程方式提示;这个会理想吗?不太可能的是,有一种方法可以告诉您哪些部分xml实际上在word文档中损坏了?

不,那没有暴露在外面

    从理论上讲,验证是可能的。但是考虑到涉及AltChunk,这可能不会引起问题。直到Word处理文档时,AltChunk的内容才被集成,此时文档被集成。而且,如果发生的事情“破坏”了某些内容,那么验证就不会生效。
  • 在这种情况下,我可以尝试手动删除AltChunk(这些文件在zip文件中的几个位置),看看是否可以在没有文件的情况下打开文件。但是,如果您不太熟悉Word Open XML zip软件包,最好询问文档的生产者/来源。
  • © www.soinside.com 2019 - 2024. All rights reserved.