У меня есть документ Word 2007, в который я хочу вставить существующий документ Word, сохраняя при этом верхний / нижний колонтитул, графику, границы и т. Д. Обоих документов.
Я делаю это с помощью Word API на C #.
Это звучит довольно просто, я имею в виду, что вы наверняка просто используете метод «InsertFile» ... за исключением того, что в Word 2007 функция «вставить файл» теперь фактически является «вставкой текста из файла», и она делает именно это - оставляя границу страницы , графика и нижний колонтитул и т. д.
Хорошо, тогда я воспользуюсь копией и вставкой, вот так ...
_Document sourceDocument = wordApplication.Documents.Open(insert the 8 million by ref parameters Word requries)
sourceDocument.Activate(); // This is the document I am copying from
wordApplication.Selection.WholeStory();
wordApplication.Selection.Copy();
targetDocument.Activate(); // This is the document I am pasting into
wordApplication.Selection.InsertBreak(wdSectionBreakNextPage);
Selection.PasteAndFormat(wdFormatOriginalFormatting);
wordApplication.Selection.InsertBreak(wdSectionBreakNextPage);
который делает то, что вы ожидаете, берет исходный документ, выбирает все, копирует его, а затем вставляет в целевой документ. Поскольку я добавил разрыв раздела перед вставкой, он также сохраняет границы, верхний и нижний колонтитулы обоих документов.
Однако - вот где у меня проблема. Вставка только включает границы, заголовок и т. Д., Если я вставляю в конец целевого объекта. документ. Если я вставлю его посередине - несмотря на предыдущий разрыв раздела, будет вставлен только текст, а заголовок, границы и т. Д. Будут потеряны.