我编写了一个程序,它打开了docx包并更改了一些<w:t>
- “word / document.xml”中的文本。当我在Microsoft Word中打开新生成的docx时,它会给我一个错误 - “文件已损坏”。但是如果在模板docx和结果docx文件之间查看“Open XML SDK Tool”差异 - 在“word / document.xml”中只更改了两行。看截图:
程序不涉及文档格式,样式或smth。仅限<w:t>
那么,什么可以在Microsoft Word中引发“文件已损坏”错误?
此错误仅出现在Microsoft Word中。例如,Mac OS X上的OpenOffice和TextEdit打开生成的文件,没有任何错误。
我上传了these docx文件,因此您可以自己查看。
答案 0 :(得分:4)
我会盲目猜测并说您修改的文档包含UNIX样式的行结尾。 Word 2003不允许\n
行结束,它需要\r\n
而Word 2007/2010更宽容并接受这两个版本。
确保在修改文档时仅使用\r\n
。
更新:我检查了您的文档,实际上文档XML部分使用了UNIX样式的行结尾。
更新2:您的结果文档中包含其他文件:.DS_Store
。从存档中删除它,文档将打开。