2016-05-26 2 views
0

Я постараюсь сохранить это краткое и простое.Как обновить содержимое файла Docx после модификации

Я создал программу, которая может изменять текст в файле документа document.xml Docx. Я достиг этого благодаря анализу xml, и он отлично работает. Прямо сейчас моя программа выводит новый файл document.xml, который точно идентичен оригиналу за вычетом измененного текста. Моя проблема начинается, когда я пытаюсь повторно закрепить файлы docx.

Просто для тестирования я вручную удалял исходный файл document.xml в папке слова и добавлял новый. В конце концов я хочу, чтобы моя программа делала это, но не в тот момент.

Так что происходит, после повторного копирования всего содержимого, Microsoft Word говорит, что файл поврежден. Кстати, если я не изменю файл document.xml и не заново закрою его, он отлично работает. Поэтому я не думаю, что с застежкой что-то не так.

Но если я удалю исходный файл document.xml, а затем верну его, слово Microsoft сообщит о его повреждении. Это действительно странно.

Вот мой оригинальный 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> 
Смежные вопросы