Вставка и добавление документов

Иногда требуется объединить несколько документов в один. Вы можете сделать это вручную или воспользоваться функцией вставки или добавления Aspose.Words.

Операция вставки позволяет вставлять содержимое ранее созданных документов в новый или существующий.

В свою очередь, функция добавления позволяет добавлять документ только в конце другого документа.

В этой статье объясняется, как вставлять или присоединять один документ к другому различными способами, а также описываются общие свойства, которые можно применять при вставке или добавлении документов.

Вставка документа

Как упоминалось выше, в Aspose.Words документ представлен в виде дерева узлов, и операция вставки одного документа в другой заключается в копировании узлов из первого дерева документов во второе.

Вы можете вставлять документы в различные места различными способами. Например, вы можете вставить документ с помощью операции замены, поля объединения во время операции объединения или с помощью закладки.

Вы также можете использовать метод InsertDocument, который аналогичен вставке документа в Microsoft Word, чтобы вставить весь документ в текущее положение курсора без предварительного импорта.

В следующем примере кода показано, как вставить документ с помощью метода InsertDocument:

В следующих подразделах описаны параметры, с помощью которых вы можете вставлять один документ в другой.

Вставьте документ во время операции поиска и замены

Вы можете вставлять документы во время выполнения операций поиска и замены. Например, документ может содержать абзацы с текстом [ВВЕДЕНИЕ] и [ЗАКЛЮЧЕНИЕ]. Но в конечном документе вам необходимо заменить эти абзацы содержимым, полученным из другого внешнего документа. Чтобы добиться этого, вам нужно будет создать обработчик для события replace.

В следующем примере кода показано, как создать обработчик для события замены, чтобы использовать его позже в процессе вставки:

В следующем примере кода показано, как вставить содержимое одного документа в другой во время операции поиска и замены:

Вставка документа во время операции Mail Merge

Вы можете вставить документ в поле для объединения во время операции mail merge. Например, шаблон mail merge может содержать поле для объединения, такое как [Сводка]. Но в конечном документе вам нужно вставить содержимое, полученное из другого внешнего документа, в это поле для объединения. Чтобы добиться этого, вам нужно будет создать обработчик для события слияния.

В следующем примере кода показано, как создать обработчик для события слияния, чтобы использовать его позже в процессе вставки:

В следующем примере кода показано, как вставить документ в поле слияния с помощью созданного обработчика:

Вставьте документ в закладку

Вы можете импортировать текстовый файл в документ и вставить его сразу после закладки, которую вы определили в документе. Для этого создайте абзац с закладкой, в который вы хотите вставить документ.

В следующем примере кодирования показано, как вставить содержимое одного документа в закладку в другом документе:

Добавление документа

Возможно, у вас есть вариант использования, когда вам нужно добавить дополнительные страницы из документа в конец существующего документа. Для этого вам просто нужно вызвать метод AppendDocument, чтобы добавить документ в конец другого документа.

В следующем примере кода показано, как добавить документ в конец другого документа:

Импортируйте и вставляйте узлы вручную

Aspose.Words позволяет автоматически вставлять и дополнять документы без каких-либо предварительных требований к импорту. Однако, если вам нужно вставить или дополнить определенный узел вашего документа, например раздел или абзац, сначала вам нужно импортировать этот узел вручную.

Когда вам нужно вставить или дополнить один раздел или абзац другим, вам, по сути, необходимо импортировать узлы первого дерева узлов документа во второе, используя метод ImportNode. После импорта узлов вам необходимо использовать метод InsertAfter/InsertBefore, чтобы вставить новый узел после/перед ссылочным узлом. Это позволяет настроить процесс вставки, импортируя узлы из документа и вставляя их в заданные позиции.

Вы также можете использовать метод AppendChild, чтобы добавить новый указанный узел в конец списка дочерних узлов, например, если вы хотите добавить содержимое на уровне абзаца, а не на уровне раздела.

В следующем примере кода показано, как вручную импортировать узлы и вставлять их после определенного узла, используя метод InsertAfter:

Содержимое импортируется в целевой документ по разделам, что означает, что при импорте сохраняются такие параметры, как настройка страницы и верхние и нижние колонтитулы. Также полезно отметить, что вы можете задать параметры форматирования при вставке или добавлении документа, чтобы указать, как два документа будут объединены.

Общие свойства для вставки и добавления документов

Как InsertDocument, так и Приложение к документу методы принимают ImportFormatMode и ImportFormatOptions в качестве входных параметров. Функция ImportFormatMode позволяет управлять объединением форматирования документов при импорте содержимого из одного документа в другой, выбирая различные режимы форматирования, такие как UseDestinationStyles, KeepSourceFormatting и KeepDifferentStyles. Параметр ImportFormatOptions позволяет выбрать различные параметры импорта, такие как IgnoreHeaderFooter, IgnoreTextBoxes, KeepSourceNumbering, MergePastedLists, и SmartStyleBehavior.

Aspose.Words позволяет настроить визуализацию результирующего документа при объединении двух документов в операции вставки или добавления с помощью свойств Section и PageSetup. Свойство PageSetup содержит все атрибуты раздела, такие как SectionStart, RestartPageNumbering, PageStartingNumber, Orientation, и другие. Наиболее распространенным вариантом использования является установка свойства SectionStart, определяющего, будет ли добавленный контент отображаться на той же странице или будет разделен на новую.

В следующем примере кода показано, как добавить один документ в другой, не разделяя содержимое на две страницы: