我写了一个程序,它打开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 打开生成的文件不会出现任何错误。
我上传these http://www.vanyamikhailov.ru/files/docxfiles.zipdocx文件,大家可以自己看。
我会盲目猜测并说您修改的文档包含 UNIX 样式的行结尾。 Word 2003 不允许\n
行结束,它需要\r\n
而Word 2007/2010 则更具包容性,并且接受这两个版本。
确保仅使用\r\n
修改文档时。
更新:我检查了您的文档,确实文档 XML 部分使用了 UNIX 样式的行结尾。
更新 2:您的结果文档中包含一个附加文件:.DS_Store
。从存档中删除该文件,文档将打开。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)