Работа с разделами

Иногда требуется, чтобы формат документа не был одинаковым для всех страниц. Например, может потребоваться изменить формат нумерации страниц, изменить размер и ориентацию страниц или использовать первую страницу документа в качестве титульного листа без какой-либо нумерации. Этого можно добиться с помощью разделов.

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

Aspose.Words позволяет управлять разделами, разбивать документ на разделы и вносить изменения в форматирование, применимые только к определенному разделу. Aspose.Words в разделе “Разрыв” хранится информация о форматировании разделов, такая как верхние и нижние колонтитулы, настройки страницы и столбцов.

В этой статье объясняется, как работать с разделами и разрывами разделов.

Что такое раздел и разрыв раздела

Разделы документа представлены классами Section и SectionCollection. Объекты раздела являются непосредственными дочерними объектами узла Document, к которым можно получить доступ с помощью свойства Sections. Вы можете управлять этими узлами, используя некоторые методы, такие как Remove, Add, IndexOf, и другие.

Разрыв раздела - это опция, которая делит страницы документа на разделы с настраиваемым макетом.

Типы разрыва раздела

Aspose.Words позволяет разделять и форматировать документы, используя различные разбиения на разделы в перечислении BreakType:

  • SectionBreakContinuous
  • SectionBreakNewColumn
  • SectionBreakNewPage
  • SectionBreakEvenPage
  • SectionBreakOddPage

Вы также можете использовать перечисление SectionStart, чтобы выбрать тип разрыва, который применяется только для первого раздела, например NewColumn, NewPage, EvenPage, и OddPage.

Управление разделом

Поскольку раздел является обычным составным узлом, для управления разделами можно использовать все манипуляции с узлами API: добавлять, удалять и выполнять другие операции с разделами. Подробнее об узлах вы можете прочитать в статье Aspose.Words Объектная модель документа (DOM).

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

Вставка или удаление разрыва раздела

Aspose.Words позволяет вставить разрыв раздела в текст, используя метод InsertBreak.

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

Используйте метод Remove, чтобы удалить разрыв раздела. Если вам не нужно удалять разрыв определенного раздела, а вместо этого удалите содержимое этого раздела, вы можете использовать метод ClearContent.

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

Переместить раздел

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

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

Укажите расположение раздела

Иногда вы хотите, чтобы ваш документ выглядел лучше, создавая креативные макеты для различных разделов документа. Если вы хотите указать тип текущей сетки разделов, вы можете выбрать режим компоновки раздела, используя перечисление SectionLayoutMode:

  • По умолчанию
  • Сетка
  • LineGrid
  • SnapToChars

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

Редактировать раздел

Когда вы добавляете новый раздел в свой документ, в нем не будет основной части или абзаца, которые вы могли бы отредактировать. Aspose.Words позволяет гарантировать, что раздел содержит основную часть по крайней мере с одним абзацем, используя метод EnsureMinimum – он автоматически добавит основной узел (или HeaderFooter) в документ, а затем добавит к нему абзац.

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

Добавлять или дополнять содержимое

Если вы хотите нарисовать какую-либо фигуру или добавить текст или изображение в начале/конце раздела, вы можете использовать методы AppendContent и PrependContent класса Section.

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

Клонировать раздел

Aspose.Words позволяет дублировать раздел, создав его полную копию с помощью метода deepClone.

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

Копирование разделов между документами

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

Aspose.Words позволяет копировать разделы между документами, используя метод ImportNode.

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

Работа с верхним и нижним колонтитулами разделов

Основные правила отображения верхнего или нижнего колонтитула для каждого раздела довольно просты:

  1. Если в разделе нет собственных колонтитулов определенного типа, то он берется из предыдущего раздела.
  2. Тип верхнего и нижнего колонтитула, отображаемого на странице, регулируется настройками раздела “Другая первая страница” и “Разные четные и нечетные страницы” – если они отключены, то собственные заголовки раздела игнорируются.

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

Если вы хотите удалить текст из верхних и нижних колонтитулов, не удаляя HeaderFooter объектов в вашем документе, вы можете использовать метод ClearHeadersFooters. Кроме того, вы можете использовать метод DeleteHeaderFooterShapes для удаления всех фигур из верхних и нижних колонтитулов в вашем документе.

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

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

Настройка свойств страницы в разделе

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

Aspose.Words позволяет настраивать свойства страниц и разделов с помощью класса PageSetup.

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

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

Смотрите также