5

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

在此处输入图像描述

程序不涉及文档格式、样式或其他东西。只输入文字<w:t>

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

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

我上传了这些docx文件,大家可以自己看。

4

1 回答 1

4

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

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

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

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

于 2010-08-23T11:24:30.587 回答