2016-05-26 34 views
0

我會盡量保持簡短。修改後如何重新壓縮Docx文件內容

我做了一個程序,可以修改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

如果我使用的是原始文檔,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> 
相關問題