Управление заголовками и нижними колонтитулами презентации в Python через Java
Обзор
PowerPoint использует разные заполнители заголовков и нижних колонтитулов в зависимости от типа страницы. Aspose.Slides для Python через Java позволяет управлять текстом и видимостью этих заполнителей с помощью классов менеджеров заголовков/нижних колонтитулов.
Доступные заполнители зависят от области:
| Область | Заголовок | Нижний колонтитул | Дата/время | Номер слайда/страницы |
|---|---|---|---|---|
| Обычный слайд | Нет | Да | Да | Да |
| Шаблон заметок | Да | Да | Да | Да |
| Слайд заметок | Да | Да | Да | Да |
| Шаблон раздаточных материалов | Да | Да | Да | Да |
У обычного слайда презентации нет заполнителя заголовка. Заголовки доступны на страницах заметок и раздаточных материалов. Для обычных слайдов используйте заполнители нижнего колонтитула, даты/времени и номера слайда.
Область изменения зависит от используемого менеджера. Класс SlideHeaderFooterManager управляет одним обычным слайдом. Класс NotesSlideHeaderFooterManager управляет одним слайдом заметок. Менеджеры мастеров и макетов также могут распространять настройки на зависимые слайды, тогда как класс MasterHandoutSlideHeaderFooterManager управляет мастером раздаточных материалов.
Установить нижний колонтитул, дату/время и номера слайдов на обычных слайдах
Для обычных слайдов основной рабочий процесс состоит в доступе к менеджеру заголовков/нижних колонтитулов каждого слайда, установке текста нижнего колонтитула и даты/времени, включении требуемых заполнителей и сохранении презентации. Номера слайдов генерируются презентацией, поэтому вам нужно только управлять их видимостью.
Используйте setFooterText и setDateTimeText для установки текста, а также setFooterVisibility, setDateTimeVisibility и setSlideNumberVisibility для отображения соответствующих заполнителей.
Следующий сквозной пример применяет одинаковый нижний колонтитул, текст даты/времени и видимость номера слайда ко всем обычным слайдам:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
for slide in presentation.getSlides():
header_footer_manager = slide.getHeaderFooterManager()
header_footer_manager.setFooterText("Company Confidential")
header_footer_manager.setFooterVisibility(True)
header_footer_manager.setDateTimeText("Date and time text")
header_footer_manager.setDateTimeVisibility(True)
header_footer_manager.setSlideNumberVisibility(True)
presentation.save("presentation_with_slide_footers.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Если необходимо обновить только один слайд, получите доступ к этому слайду напрямую через метод getSlides, а не перебирая всю коллекцию.
Установить заголовки и нижние колонтитулы в шаблоне заметок
Шаблон заметок определяет общие параметры форматирования и поведения заполнителей для страниц заметок. Используйте класс MasterNotesSlideHeaderFooterManager, когда нужно изменить только сам шаблон заметок.
Следующий пример задаёт заголовок, нижний колонтитул и текст даты/времени в шаблоне заметок и делает все поддерживаемые заполнители видимыми в этом мастере:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
master_notes_slide = presentation.getMasterNotesSlideManager().getMasterNotesSlide()
if master_notes_slide is not None:
header_footer_manager = master_notes_slide.getHeaderFooterManager()
header_footer_manager.setHeaderText("Notes header")
header_footer_manager.setHeaderVisibility(True)
header_footer_manager.setFooterText("Notes footer")
header_footer_manager.setFooterVisibility(True)
header_footer_manager.setDateTimeText("Date and time text")
header_footer_manager.setDateTimeVisibility(True)
header_footer_manager.setSlideNumberVisibility(True)
presentation.save("presentation_with_notes_master_footers.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Метод getMasterNotesSlide возвращает None, когда презентация не содержит шаблона заметок.
Применить настройки шаблона заметок к дочерним слайдам заметок
Шаблон заметок может применять настройки заголовков и нижних колонтитулов к себе и ко всем зависимым слайдам заметок. Используйте специальные методы распространения в классе MasterNotesSlideHeaderFooterManager, когда одинаковые настройки должны применяться по всей иерархии заметок.
Например, setHeaderAndChildHeadersText и setHeaderAndChildHeadersVisibility обновляют заголовок шаблона заметок и все дочерние заголовки. Эквивалентные методы доступны для нижних колонтитулов, даты/времени и номеров слайдов.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
master_notes_slide = presentation.getMasterNotesSlideManager().getMasterNotesSlide()
if master_notes_slide is not None:
header_footer_manager = master_notes_slide.getHeaderFooterManager()
header_footer_manager.setHeaderAndChildHeadersText("Notes header")
header_footer_manager.setHeaderAndChildHeadersVisibility(True)
header_footer_manager.setFooterAndChildFootersText("Notes footer")
header_footer_manager.setFooterAndChildFootersVisibility(True)
header_footer_manager.setDateTimeAndChildDateTimesText("Date and time text")
header_footer_manager.setDateTimeAndChildDateTimesVisibility(True)
header_footer_manager.setSlideNumberAndChildSlideNumbersVisibility(True)
presentation.save("presentation_with_child_notes_footers.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Методы распространения, использованные выше, — setFooterAndChildFootersText, setFooterAndChildFootersVisibility, setDateTimeAndChildDateTimesText, setDateTimeAndChildDateTimesVisibility и setSlideNumberAndChildSlideNumbersVisibility.
Установить заголовки и нижние колонтитулы на отдельном слайде заметок
Слайд заметок относится к определённому обычному слайду. Используйте его класс NotesSlideHeaderFooterManager, когда нужно настроить только эту страницу заметок.
Метод addNotesSlide возвращает слайд заметок для текущего слайда и создаёт его, если он ещё не существует. Следующий пример настраивает страницу заметок, связанную с первым слайдом презентации:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
slide = presentation.getSlides().get_Item(0)
notes_slide = slide.getNotesSlideManager().addNotesSlide()
header_footer_manager = notes_slide.getHeaderFooterManager()
header_footer_manager.setHeaderText("Header for the first notes page")
header_footer_manager.setHeaderVisibility(True)
header_footer_manager.setFooterText("Footer for the first notes page")
header_footer_manager.setFooterVisibility(True)
header_footer_manager.setDateTimeText("Date and time text")
header_footer_manager.setDateTimeVisibility(True)
header_footer_manager.setSlideNumberVisibility(True)
presentation.save("presentation_with_custom_notes_footers.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Если сначала распространить настройки из шаблона заметок, а затем изменить отдельный слайд заметок, последующие настройки конкретного слайда позволят адаптировать эту страницу заметок независимо.
Установить заголовки и нижние колонтитулы в шаблоне раздаточных материалов
Страницы раздаточных материалов используют шаблон раздаточных материалов для своих заполнителей заголовка, нижнего колонтитула, даты/времени и номера страницы. В отличие от страниц заметок, настройки раздаточных материалов управляются через шаблон раздаточных материалов, а не через отдельные слайды раздаточных материалов.
Используйте метод getMasterHandoutSlide для доступа к шаблону раздаточного материала. Если он отсутствует, вызовите setDefaultMasterHandoutSlide, чтобы создать шаблон раздаточного материала по умолчанию.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("presentation.pptx")
try:
master_handout_slide = presentation.getMasterHandoutSlideManager().getMasterHandoutSlide()
if master_handout_slide is None:
master_handout_slide = presentation.getMasterHandoutSlideManager().setDefaultMasterHandoutSlide()
if master_handout_slide is not None:
header_footer_manager = master_handout_slide.getHeaderFooterManager()
header_footer_manager.setHeaderText("Handout header")
header_footer_manager.setHeaderVisibility(True)
header_footer_manager.setFooterText("Handout footer")
header_footer_manager.setFooterVisibility(True)
header_footer_manager.setDateTimeText("Date and time text")
header_footer_manager.setDateTimeVisibility(True)
header_footer_manager.setSlideNumberVisibility(True)
presentation.save("presentation_with_handout_footers.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Понимание области применения и наследования
Выберите менеджер заголовков/нижних колонтитулов, соответствующий области, которую необходимо изменить:
- SlideHeaderFooterManager меняет настройки нижнего колонтитула, даты/времени и номера слайда для одного обычного слайда.
- LayoutSlideHeaderFooterManager управляет макетом слайда и может распространять поддерживаемые настройки на зависимые слайды.
- MasterSlideHeaderFooterManager управляет обычным мастером слайдов и может распространять поддерживаемые настройки на зависимые слайды.
- MasterNotesSlideHeaderFooterManager управляет шаблоном заметок и может распространять настройки на все зависимые слайды заметок.
- NotesSlideHeaderFooterManager меняет один слайд заметок и поддерживает заполнитель заголовка в дополнение к нижнему колонтитулу, дате/времени и номеру слайда.
- MasterHandoutSlideHeaderFooterManager меняет шаблон раздаточных материалов и поддерживает все четыре типа заполнителей.
Используйте распространение из мастера или макета, когда одна и та же настройка должна применяться ко всей иерархии. Используйте менеджер отдельного слайда или слайда заметок, когда требуется локальная настройка для одной страницы.
Часто задаваемые вопросы
Могу ли я добавить заголовок к обычному слайду?
Нет. PowerPoint не определяет заполнитель заголовка для обычных слайдов. На обычных слайдах используйте заполнители нижнего колонтитула, даты/времени и номера слайда. Заполнители заголовка доступны на страницах заметок и раздаточных материалов.
Что делать, если заполнитель нижнего колонтитула, даты/времени или номера слайда не виден?
Используйте соответствующий менеджер заголовков/нижних колонтитулов, чтобы проверить его видимость и включить его при необходимости. Например, isFooterVisible сообщает, присутствует ли заполнитель нижнего колонтитула, а setFooterVisibility изменяет его видимость.
Как начать нумерацию слайда с значения, отличного от 1?
Вызовите метод презентации setFirstSlideNumber. После этого заполнители номеров слайдов используют обновлённую последовательность нумерации.
Что происходит с заголовками и нижними колонтитулами при экспорте в PDF, изображения или HTML?
Видимые элементы заголовков и нижних колонтитулов рендерятся вместе с остальным содержимым презентации в выходном формате. Их отображение зависит от типа экспортируемой страницы и соответствующих настроек видимости заполнителей.