Управление заголовками и нижними колонтитулами презентации в Java
Обзор
PowerPoint использует разные заполнители заголовков и нижних колонтитулов в зависимости от типа страницы. Aspose.Slides for Java позволяет управлять текстом и видимостью этих заполнителей через интерфейсы менеджеров заголовков/нижних колонтитулов.
Доступные заполнители зависят от области:
| Область | Заголовок | Нижний колонтитул | Дата/время | Номер слайда/страницы |
|---|---|---|---|---|
| Обычный слайд | Нет | Да | Да | Да |
| Мастер заметок | Да | Да | Да | Да |
| Слайд заметок | Да | Да | Да | Да |
| Мастер раздатки | Да | Да | Да | Да |
Обычный слайд презентации не имеет заполнителя заголовка. Заголовки доступны на страницах заметок и раздатках. Для обычных слайдов используйте заполнители нижнего колонтитула, даты/времени и номера слайда.
Область изменения зависит от используемого менеджера. Интерфейс ISlideHeaderFooterManager управляет одним обычным слайдом. Интерфейс INotesSlideHeaderFooterManager управляет одним слайдом заметок. Менеджеры мастеров и раскладок также могут распространять параметры на зависимые слайды, а интерфейс IMasterHandoutSlideHeaderFooterManager управляет мастером раздатки.
Установка нижнего колонтитула, даты/времени и номеров слайдов на обычных слайдах
Для обычных слайдов базовый процесс состоит в доступе к менеджеру заголовков/нижних колонтитулов каждого слайда, установке текста нижнего колонтитула и даты/времени, включении необходимых заполнителей и сохранении презентации. Номера слайдов генерируются презентацией, поэтому нужно лишь контролировать их видимость.
Используйте setFooterText и setDateTimeText для задания текста, а также setFooterVisibility, setDateTimeVisibility, и setSlideNumberVisibility для отображения соответствующих заполнителей.
Следующий сквозной пример применяет одинаковый нижний колонтитул, текст даты/времени и видимость номера слайда ко всем обычным слайдам:
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
for (ISlide slide : presentation.getSlides()) {
ISlideHeaderFooterManager headerFooterManager = slide.getHeaderFooterManager();
headerFooterManager.setFooterText("Company Confidential");
headerFooterManager.setFooterVisibility(true);
headerFooterManager.setDateTimeText("Date and time text");
headerFooterManager.setDateTimeVisibility(true);
headerFooterManager.setSlideNumberVisibility(true);
}
presentation.save("presentation_with_slide_footers.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Если нужно обновить только один слайд, обратитесь к этому слайду напрямую через метод getSlides вместо перебора всей коллекции.
Установка заголовков и нижних колонтитулов в мастере заметок
Мастер заметок определяет общие параметры форматирования и поведения заполнителей для страниц заметок. Используйте интерфейс IMasterNotesSlideHeaderFooterManager когда необходимо изменить только сам мастер заметок.
Следующий пример задает текст заголовка, нижнего колонтитула и даты/времени в мастере заметок и делает все поддерживаемые заполнители видимыми в этом мастере:
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterNotesSlide masterNotesSlide = presentation.getMasterNotesSlideManager().getMasterNotesSlide();
if (masterNotesSlide != null) {
IMasterNotesSlideHeaderFooterManager headerFooterManager = masterNotesSlide.getHeaderFooterManager();
headerFooterManager.setHeaderText("Notes header");
headerFooterManager.setHeaderVisibility(true);
headerFooterManager.setFooterText("Notes footer");
headerFooterManager.setFooterVisibility(true);
headerFooterManager.setDateTimeText("Date and time text");
headerFooterManager.setDateTimeVisibility(true);
headerFooterManager.setSlideNumberVisibility(true);
}
presentation.save("presentation_with_notes_master_footers.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Метод getMasterNotesSlide возвращает null, если презентация не содержит мастер заметок.
Применение настроек мастера заметок к дочерним слайдам заметок
Мастер заметок может применять настройки заголовка и нижнего колонтитула к себе и ко всем зависимым слайдам заметок. Используйте специальные методы распространения в IMasterNotesSlideHeaderFooterManager когда одинаковые параметры должны быть применены по всей иерархии заметок.
Например, методы setHeaderAndChildHeadersText и setHeaderAndChildHeadersVisibility обновляют заголовок мастера заметок и все дочерние заголовки. Эквивалентные методы доступны для нижних колонтитулов, даты/времени и номеров слайдов.
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterNotesSlide masterNotesSlide = presentation.getMasterNotesSlideManager().getMasterNotesSlide();
if (masterNotesSlide != null) {
IMasterNotesSlideHeaderFooterManager headerFooterManager = masterNotesSlide.getHeaderFooterManager();
headerFooterManager.setHeaderAndChildHeadersText("Notes header");
headerFooterManager.setHeaderAndChildHeadersVisibility(true);
headerFooterManager.setFooterAndChildFootersText("Notes footer");
headerFooterManager.setFooterAndChildFootersVisibility(true);
headerFooterManager.setDateTimeAndChildDateTimesText("Date and time text");
headerFooterManager.setDateTimeAndChildDateTimesVisibility(true);
headerFooterManager.setSlideNumberAndChildSlideNumbersVisibility(true);
}
presentation.save("presentation_with_child_notes_footers.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Методы распространения, использованные выше, это setFooterAndChildFootersText, setFooterAndChildFootersVisibility, setDateTimeAndChildDateTimesText, setDateTimeAndChildDateTimesVisibility, и setSlideNumberAndChildSlideNumbersVisibility.
Установка заголовков и нижних колонтитулов на отдельном слайде заметок
Слайд заметок принадлежит определенному обычному слайду. Используйте его интерфейс INotesSlideHeaderFooterManager когда нужно настроить только эту страницу заметок.
Метод addNotesSlide возвращает слайд заметок для текущего слайда и создает его, если он еще не существует. Следующий пример настраивает страницу заметок, связанную с первым слайдом презентации:
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
INotesSlide notesSlide = slide.getNotesSlideManager().addNotesSlide();
INotesSlideHeaderFooterManager headerFooterManager = notesSlide.getHeaderFooterManager();
headerFooterManager.setHeaderText("Header for the first notes page");
headerFooterManager.setHeaderVisibility(true);
headerFooterManager.setFooterText("Footer for the first notes page");
headerFooterManager.setFooterVisibility(true);
headerFooterManager.setDateTimeText("Date and time text");
headerFooterManager.setDateTimeVisibility(true);
headerFooterManager.setSlideNumberVisibility(true);
presentation.save("presentation_with_custom_notes_footers.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Если сначала распространить настройки из мастера заметок, а затем изменить отдельный слайд заметок, последующие настройки конкретного слайда позволяют независимо кастомизировать эту страницу заметок.
Установка заголовков и нижних колонтитулов в мастере раздатки
Страницы раздатки используют мастер раздатки для своих заполнителей заголовка, нижнего колонтитула, даты/времени и номера страницы. В отличие от страниц заметок, параметры раздатки управляются через мастер раздатки, а не через отдельные слайды раздатки.
Используйте метод getMasterHandoutSlide для доступа к мастеру раздатки. Если он отсутствует, вызовите setDefaultMasterHandoutSlide для создания мастера раздатки по умолчанию.
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterHandoutSlide masterHandoutSlide = presentation.getMasterHandoutSlideManager().getMasterHandoutSlide();
if (masterHandoutSlide == null) {
masterHandoutSlide = presentation.getMasterHandoutSlideManager().setDefaultMasterHandoutSlide();
}
if (masterHandoutSlide != null) {
IMasterHandoutSlideHeaderFooterManager headerFooterManager = masterHandoutSlide.getHeaderFooterManager();
headerFooterManager.setHeaderText("Handout header");
headerFooterManager.setHeaderVisibility(true);
headerFooterManager.setFooterText("Handout footer");
headerFooterManager.setFooterVisibility(true);
headerFooterManager.setDateTimeText("Date and time text");
headerFooterManager.setDateTimeVisibility(true);
headerFooterManager.setSlideNumberVisibility(true);
}
presentation.save("presentation_with_handout_footers.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Понимание области и наследования
Выберите менеджер заголовков/нижних колонтитулов, соответствующий области, которую нужно изменить:
ISlideHeaderFooterManagerизменяет параметры нижнего колонтитула, даты/времени и номера слайда для одного обычного слайда.ILayoutSlideHeaderFooterManagerуправляет слайдом раскладки и может распространять поддерживаемые настройки на зависимые слайды.IMasterSlideHeaderFooterManagerконтролирует обычный мастер слайдов и может распространять поддерживаемые настройки на зависимые слайды.IMasterNotesSlideHeaderFooterManagerуправляет мастером заметок и может распространять настройки на все зависимые слайды заметок.INotesSlideHeaderFooterManagerизменяет один слайд заметок и поддерживает заполнитель заголовка в дополнение к нижнему колонтитулу, дате/времени и номеру слайда.IMasterHandoutSlideHeaderFooterManagerизменяет мастер раздатки и поддерживает все четыре типа заполнителей.
Используйте распространение из мастера или раскладки, когда одинаковая настройка должна применяться по всей иерархии. Используйте отдельный слайд или менеджер слайда заметок, когда требуется локальная настройка для одной страницы.
FAQ
Можно ли добавить заголовок к обычному слайду?
Нет. PowerPoint не определяет заполнитель заголовка для обычных слайдов. На обычных слайдах используйте заполнители нижнего колонтитула, даты/времени и номера слайда. Заполнители заголовков доступны на страницах заметок и раздатках.
Что делать, если заполнители нижнего колонтитула, даты/времени или номера слайда не видны?
Используйте соответствующий менеджер заголовков/нижних колонтитулов, чтобы проверить его видимость и при необходимости включить её. Например, метод isFooterVisible сообщает, присутствует ли заполнитель нижнего колонтитула, а setFooterVisibility изменяет его видимость.
Как начать нумерацию слайдов с значения, отличного от 1?
Вызовите метод презентации setFirstSlideNumber . После этого заполнители номеров слайдов используют обновлённую последовательность нумерации.
Что происходит с заголовками и нижними колонтитулами при экспорте в PDF, изображения или HTML?
Видимые элементы заголовков и нижних колонтитулов рендерятся вместе с остальным содержимым презентации в целевом формате. Их отображение зависит от типа экспортируемой страницы и соответствующих параметров видимости заполнителей.