Объединение документов
-
20-09-2019 - |
Вопрос
Я пытаюсь объединить два документа docx в один документ docx, используя OpenXML SDK 2.0.Документы должны быть объединены без потери их стиля и пользовательских верхних и нижних колонтитулов.Я надеюсь, что смогу добиться этого, используя AltChunk
и разрыв раздела.Но я не могу заставить его работать.
Возможно ли то, что я пытаюсь сделать?Может ли кто-нибудь дать мне подсказку, как этого добиться?
Решение 2
Используя «Инструмент повышения производительности Open XML», я проанализировал структуру docx-документа и пришел к выводу, что объединение документов с их стилем, верхними и нижними колонтитулами...невозможно из коробки, используя Altchunk
.Вы можете скачать инструмент отдельно с сайта открыть XML SDK.
Сейчас я копирую все вручную в документ и проверяю, что все ссылки на стили, ссылки на заголовки, ссылки на нижний колонтитул...сохраняются.Это означает, что я даю им новый уникальный идентификатор, прежде чем копировать их в документ и менять все ссылки со старого идентификатора на новый.Для этого нужно много кода, но упомянутый выше инструмент действительно помог.
Добавить разрыв раздела также довольно сложно.Вы должны знать, что Свойства раздела-tag описывает все свойства раздела и то, что он может быть один SectionProperties
-тег под Body
-тег, описывающий свойства последнего раздела.Таким образом, добавление нового разрыва раздела означает копирование последнего SectionProperties
-тег к последнему абзацу раздела и добавление нового SectionProperties
-тег под Body
-ярлык.Я также получил много информации из инструмента повышения производительности.
Другие советы
Ответ выше НЕ верен вообще!Это ИМЕННО то, для чего был разработан AltChunk, и он отлично работает!
ПРИМЕЧАНИЕ:что документы не будут объединены в один документ, ПОКА Word не откроет файл в первый раз (очевидно, файл необходимо сохранить, иначе файл на диске не будет обновлен).
Дополнительную информацию о том, как это сделать правильно, можно найти в этом блоге:https://blogs.msdn.com/b/ericwhite/archive/2008/10/27/how-to-use-altchunk-for-document-assembly.aspx?Redirected=true
п.с.Что касается изучения Open XML с помощью инструмента повышения производительности, я считаю, что нужно просто установить официальную надстройку Visual Studio Open XML и открыть документы Office из Visual Studio, чтобы изучить их, это очень удобно!:-)