我正在从另一个系统获取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的哪些部分实际上已损坏?
不,那没有暴露在外面
从理论上讲,验证是可能的。但是考虑到涉及AltChunk,这可能不会引起问题。直到Word处理文档时,AltChunk的内容才被集成,此时文档被集成。而且,如果发生的事情“破坏”了某些内容,那么验证就不会生效。
在这种情况下,我可以尝试手动删除AltChunk(这些文件在zip文件中的几个位置),看看是否可以在没有文件的情况下打开文件。但是,如果您不太熟悉Word Open XML zip软件包,最好询问文档的生产者/来源。