Управление заголовками и нижними колонтитулами презентации в PHP
Обзор
PowerPoint использует разные плейсхолдеры заголовков и нижних колонтитулов в зависимости от типа слайда. Aspose.Slides for PHP via Java позволяет управлять текстом и видимостью этих плейсхолдеров с помощью классов менеджеров заголовков/нижних колонтитулов.
Доступные плейсхолдеры зависят от области:
| Область | Заголовок | Нижний колонтитул | Дата/время | Номер слайда/страницы |
|---|---|---|---|---|
| Обычный слайд | Нет | Да | Да | Да |
| Шаблон заметок | Да | Да | Да | Да |
| Слайд заметок | Да | Да | Да | Да |
| Шаблон раздаточного листа | Да | Да | Да | Да |
У обычного слайда презентации нет плейсхолдера заголовка. Заголовки доступны на страницах заметок и раздаточных листах. Для обычных слайдов вместо этого используйте плейсхолдеры нижнего колонтитула, даты/времени и номера слайда.
Область изменения зависит от используемого менеджера. Класс SlideHeaderFooterManager управляет одним обычным слайдом. Класс NotesSlideHeaderFooterManager управляет одним слайдом заметок. Менеджеры мастер‑ и макетных слайдов также могут распространять настройки на зависимые слайды, тогда как класс MasterHandoutSlideHeaderFooterManager управляет шаблоном раздаточного листа.
Установка нижнего колонтитула, даты/времени и номеров слайдов на обычных слайдах
Для обычных слайдов базовый процесс состоит в доступе к менеджеру заголовков/нижних колонтитулов каждого слайда, установке текста нижнего колонтитула и даты/времени, включении необходимых плейсхолдеров и сохранении презентации. Номера слайдов генерируются презентацией, поэтому нужно лишь управлять их видимостью.
Используйте setFooterText и setDateTimeText для установки текста, а также setFooterVisibility, setDateTimeVisibility и setSlideNumberVisibility для отображения соответствующих плейсхолдеров.
Следующий пример от начала до конца применяет одинаковый нижний колонтитул, текст даты/времени и видимость номера слайда ко всем обычным слайдам:
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation.pptx");
try {
foreach ($presentation->getSlides() as $slide) {
$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, а не перебирая всю коллекцию.
Установка заголовков и нижних колонтитулов в мастере заметок
Мастер заметок определяет общие параметры форматирования и поведение плейсхолдеров для страниц заметок. Используйте класс MasterNotesSlideHeaderFooterManager, когда необходимо изменить только сам мастер заметок.
Следующий пример устанавливает заголовок, нижний колонтитул и текст даты/времени в мастере заметок и делает все поддерживаемые плейсхолдеры видимыми в этом мастере:
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation.pptx");
try {
$masterNotesSlide = $presentation->getMasterNotesSlideManager()->getMasterNotesSlide();
if (!java_is_null($masterNotesSlide)) {
$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, когда презентация не содержит мастер заметок.
Применение настроек мастера заметок к дочерним слайдам заметок
Мастер заметок может применять настройки заголовка и нижнего колонтитула к себе и ко всем зависимым слайдам заметок. Используйте специальные методы распространения в MasterNotesSlideHeaderFooterManager, когда одинаковые настройки должны применяться по всей иерархии заметок.
Например, setHeaderAndChildHeadersText и setHeaderAndChildHeadersVisibility обновляют заголовок мастера заметок и все дочерние заголовки. Эквивалентные методы доступны для нижних колонтитулов, даты/времени и номеров слайдов.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation.pptx");
try {
$masterNotesSlide = $presentation->getMasterNotesSlideManager()->getMasterNotesSlide();
if (!java_is_null($masterNotesSlide)) {
$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.
Установка заголовков и нижних колонтитулов на отдельном слайде заметок
Слайд заметок относится к конкретному обычному слайду. Используйте его класс NotesSlideHeaderFooterManager, когда нужно настроить только эту страницу заметок.
Метод addNotesSlide возвращает слайд заметок для текущего слайда и создает его, если он еще не существует. Следующий пример настраивает страницу заметок, связанную с первым слайдом презентации:
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$notesSlide = $slide->getNotesSlideManager()->addNotesSlide();
$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 для создания мастер‑раздаточного листа по умолчанию.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation.pptx");
try {
$masterHandoutSlide = $presentation->getMasterHandoutSlideManager()->getMasterHandoutSlide();
if (java_is_null($masterHandoutSlide)) {
$masterHandoutSlide = $presentation->getMasterHandoutSlideManager()->setDefaultMasterHandoutSlide();
}
if (!java_is_null($masterHandoutSlide)) {
$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();
}
Понимание области и наследования
Выберите менеджер заголовков/нижних колонтитулов, соответствующий области, которую вы хотите изменить:
SlideHeaderFooterManagerизменяет настройки нижнего колонтитула, даты/времени и номера слайда для одного обычного слайда.LayoutSlideHeaderFooterManagerуправляет макетным слайдом и может распространять поддерживаемые настройки на зависимые слайды.MasterSlideHeaderFooterManagerуправляет мастером обычных слайдов и может распространять поддерживаемые настройки на зависимые слайды.MasterNotesSlideHeaderFooterManagerуправляет мастером заметок и может распространять настройки на все зависимые слайды заметок.NotesSlideHeaderFooterManagerизменяет один слайд заметок и поддерживает плейсхолдер заголовка в дополнение к нижнему колонтитулу, дате/времени и номеру слайда.MasterHandoutSlideHeaderFooterManagerизменяет мастер раздаточного листа и поддерживает все четыре типа плейсхолдеров.
Используйте распространение из мастера или макета, когда одинаковая настройка должна применяться ко всей его иерархии. Используйте менеджер отдельного слайда или слайда заметок, когда требуется локальная настройка для одной страницы.
FAQ
Могу ли я добавить заголовок к обычному слайду?
Нет. PowerPoint не определяет плейсхолдер заголовка для обычных слайдов. На обычных слайдах используйте плейсхолдеры нижнего колонтитула, даты/времени и номера слайда. Плейсхолдеры заголовков доступны на страницах заметок и раздаточных листах.
Что делать, если плейсхолдер нижнего колонтитула, даты/времени или номера слайда не виден?
Используйте соответствующий менеджер заголовков/нижних колонтитулов, чтобы проверить его видимость и включить при необходимости. Например, isFooterVisible сообщает, присутствует ли плейсхолдер нижнего колонтитула, а setFooterVisibility изменяет его видимость.
Как начать нумерацию слайдов со значения, отличного от 1?
Вызовите метод презентации setFirstSlideNumber. Плейсхолдеры номеров слайдов затем используют обновлённую нумерацию.
Что происходит с заголовками и нижними колонтитулами при экспорте в PDF, изображения или HTML?
Видимые элементы заголовка и нижнего колонтитула отображаются вместе с остальным содержимым презентации в выходном формате. Их внешний вид зависит от типа экспортируемой страницы и соответствующих настроек видимости плейсхолдеров.