我编写了一个程序,该程序打开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/