我会尽量保持简短。
我制作了一个程序,可以修改Docx document.xml文件中的文本。我通过xml解析实现了这一点,效果很好。现在我的程序正在输出一个新的document.xml文件,该文件与原始文件完全相同,减去了更改后的文本。当我尝试重新压缩docx文件时,我的问题开始了。
仅出于测试目的,我一直在手动删除word文件夹中的原始document.xml文件并添加新文件。最终我希望我的程序可以做到这一点,但目前还没有。
最近发生的事情是,在重新压缩所有内容之后,Microsoft Word称该文件已损坏。顺便说一下,如果我不改变document.xml文件,并重新压缩它,它工作正常。因此我认为压缩没有任何问题。
但是如果我删除原始的document.xml文件然后将其放回去,那么微软的话说它已经腐败了。它真的很奇怪。
这是我原来的document.xml文件
https://www.dropbox.com/s/ghe1m176rdqtng7/document.xml?dl=0
和更新的。
https://www.dropbox.com/s/8n9llagozbvb2mz/document_output.xml?dl=0
希望有人可以了解最新情况。
谢谢!
答案 0 :(得分:0)
如果我使用原始文档,Word也会说它会损坏。
据我所知,有三个参考指向无处。
如果你注释掉三个w:headerReference
元素(在底部作为w:sectPr
元素的子元素),我可以在没有Word抱怨的情况下打开它。
整个新部分:
<w:sectPr w:rsidR="00EC0B63" w:rsidSect="00EC0B63">
<!--<w:headerReference w:type="even" r:id="rId8"/>
<w:headerReference w:type="default" r:id="rId9"/>
<w:headerReference w:type="first" r:id="rId10"/>-->
<w:pgSz w:w="12240" w:h="15840"/>
<w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720"
w:footer="720" w:gutter="0"/>
<w:cols w:space="720"/>
<w:titlePg/>
<w:docGrid w:linePitch="360"/>
</w:sectPr>