ms-word - Word中的docx "File is corrupt"错误

标签 ms-word ms-office docx

我编写了一个程序,该程序打开docx包,并在“word/document.xml”中更改了一些<w:t> -text。当我用Microsoft Word打开新生成的docx时,它给我一个错误-“文件已损坏”。但是,如果在“Open XML SDK Tool”中查找模板docx和结果docx文件之间的差异,则“word/document.xml”中只有两行更改。看截图:

程序不会触及文档格式,样式或内容。仅<w:t>中的文本

那么,什么会在Microsoft Word中引发“文件已损坏”错误?

并且此错误仅出现在Microsoft Word中。例如,Mac OS X上的OpenOffice和TextEdit可以打开生成的文件而不会出现任何错误。

我上传了these docx文件,因此您可以自己查看它们。

最佳答案

我会盲目的猜测,并说您修改的文档包含UNIX样式的行尾。 Word 2003不容忍\n行结尾,它需要\r\n,而Word 2007/2010更容忍并接受两个版本。

确保在修改文档时仅使用\r\n

更新:我检查了您的文档,实际上文档XML部分使用UNIX样式的行结尾。

更新2:您的结果文档中还包含一个附加文件:.DS_Store。从存档中删除该文档,文档将打开。

关于ms-word - Word中的docx "File is corrupt"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3547007/

相关文章:

c# - 创建Word文档并编写格式化文本

vba - Word.Range.TextVisibleOnScreen?

ms-office - 在不同页面上将多个图像加载到 PowerPoint 中的自动化方法?

vba - 是否可以在 VBA(在 Office for Mac 中)中为共享库指定用户主目录中的位置?

OpenXML SDK 和 MathML

python - 在 Python 中提取段落文本

python - 使用 python 读写 .docx 文件

VBA 字范围操作看起来不同

c++ - 如何让 C++ 应用程序在不同的 MS office 版本之间切换?

java - 使用 Apache POI 双向处理 Word 文档