Робота з розділами
Іноді потрібно, щоб формат документа не був однаковим для всіх сторінок. Наприклад, може знадобитися змінити формат нумерації сторінок, змінити розмір та орієнтацію сторінок або використовувати першу сторінку документа як титульну сторінку без будь-якої нумерації. Цього можна досягти за допомогою розділів.
Розділи-це вузли рівня, які керують верхніми та нижніми колонтитулами, орієнтацією, стовпцями, полями, форматуванням номерів сторінок та іншими параметрами.
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 дозволяє дублювати розділ, створюючи його повну копію методом Clone.
Наступний приклад коду показує, як клонувати перший розділ у вашому документі:
Копіювання розділів між документами
У деяких випадках у вас можуть бути великі документи з великою кількістю розділів, і ви хочете скопіювати вміст розділу з одного документа в інший.
Aspose.Words дозволяє копіювати розділи між документами, використовуючи метод ImportNode.
Наступний приклад коду показує, як копіювати розділи між документами:
Робота з верхнім і нижнім колонтитулами розділів
Основні правила відображення верхнього або нижнього колонтитула для кожного розділу досить прості:
- Якщо в розділі немає власних колонтитулів певного типу, то він береться з попереднього розділу.
- Тип верхнього та нижнього колонтитулів, що відображаються на сторінці, регулюється налаштуваннями розділу “інша перша сторінка” та “різні парні та непарні сторінки” – якщо вони вимкнені, то власні заголовки розділів ігноруються.
Наступний приклад коду показує, як створити 2 розділи з різними заголовками:
Якщо ви хочете видалити текст із верхнього та нижнього колонтитулів, не видаляючи HeaderFooter об’єктів у вашому документі, ви можете скористатися методом ClearHeadersFooters. Крім того, ви можете використовувати метод DeleteHeaderFooterShapes, щоб видалити всі фігури з верхнього та нижнього колонтитулів у вашому документі.
Наступний приклад коду показує, як очистити вміст усіх колонтитулів та колонтитулів у розділі:
У наступному прикладі коду показано, як видалити всі фігури з усіх верхніх і нижніх колонтитулів розділу:
Налаштування властивостей сторінки в розділі
Перед друком сторінки або документа може знадобитися налаштувати розмір і оформлення окремої сторінки або всього документа в цілому. За допомогою налаштування сторінки ви можете змінити параметри сторінок документа, такі як поля, орієнтація та розмір, для друку різних перших сторінок або непарних сторінок.
Aspose.Words дозволяє налаштувати властивості сторінок та розділів за допомогою класу PageSetup.
Наступний приклад коду показує, як встановити такі властивості, як розмір сторінки та орієнтація для поточного розділу:
Наступний приклад коду показує, як змінити властивості сторінки у всіх розділах: