Применить или изменить макеты слайдов в Python
Обзор
Макет слайда определяет расположение полей‑заменителей и форматирование содержимого на слайде. Он управляет тем, какие заменители доступны и где они находятся. Макеты слайдов помогают быстро и последовательно создавать презентации — независимо от того, создаёте ли вы что‑то простое или более сложное. Некоторые из самых распространённых макетов слайдов в PowerPoint включают:
Title Slide layout – Включает два текстовых заменителя: один для заголовка и один для подзаголовка.
Title and Content layout – Содержит меньшее поле‑заменитель заголовка вверху и большее под ним для основного содержимого (например, текста, маркированных пунктов, диаграмм, изображений и прочего).
Blank layout – Не содержит заменителей, предоставляя полный контроль над созданием слайда с нуля.
Макеты слайдов являются частью главного слайда, который является верхнеуровневым слайдом и определяет стили макетов для презентации. Вы можете получить доступ к макетам слайдов и изменять их через главный слайд — либо по типу, имени, либо по уникальному идентификатору. Кроме того, можно редактировать конкретный макет слайда непосредственно в презентации.
Для работы с макетами слайдов в Aspose.Slides for Python вы можете использовать:
- Свойства, такие как layout_slides и masters в классе Presentation
- Типы, такие как LayoutSlide, MasterLayoutSlideCollection, LayoutPlaceholderManager и LayoutSlideHeaderFooterManager
Info
Чтобы узнать больше о работе с главными слайдами, ознакомьтесь со статьёй Manage PowerPoint Slide Masters in Python.Добавление макетов слайдов в презентации
Для настройки внешнего вида и структуры ваших слайдов может потребоваться добавить новые макеты слайдов в презентацию. Aspose.Slides for Python позволяет проверить, существует ли уже конкретный макет, добавить новый при необходимости и использовать его для вставки слайдов на основе этого макета.
- Создайте экземпляр класса Presentation.
- Получите доступ к MasterLayoutSlideCollection.
- Проверьте, существует ли желаемый макет слайда в коллекции. Если нет, добавьте нужный макет слайда.
- Добавьте пустой слайд на основе нового макета слайда.
- Сохраните презентацию.
Следующий код Python демонстрирует, как добавить макет слайда в презентацию PowerPoint:
import aspose.slides as slides
# Создать экземпляр класса Presentation для открытия файла презентации.
with slides.Presentation("sample.pptx") as presentation:
# Пройти типы макетов слайдов, чтобы выбрать макет слайда.
layout_slides = presentation.masters[0].layout_slides
layout_slide = layout_slides.get_by_type(slides.SlideLayoutType.TITLE_AND_OBJECT)
if layout_slide is None:
layout_slide = layout_slides.get_by_type(slides.SlideLayoutType.TITLE)
if layout_slide is None:
# Ситуация, когда презентация не содержит всех типов макетов.
# Файл презентации содержит только макеты Blank и Custom.
# Однако макеты с пользовательскими типами могут иметь узнаваемые имена,
# такие как "Title", "Title and Content" и т.д., которые могут использоваться для выбора макета слайда.
# Вы также можете опираться на набор типов фигур-заполнителей.
# Например, титульный слайд должен содержать только тип заполнителя Title и т.д.
for title_and_object_layout_slide in layout_slides:
if title_and_object_layout_slide.name == "Title and Object":
layout_slide = title_and_object_layout_slide
break
if layout_slide is None:
for title_layout_slide in layout_slides:
if title_layout_slide.name == "Title":
layout_slide = title_layout_slide
break
if layout_slide is None:
layout_slide = layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
if layout_slide is None:
layout_slide = layout_slides.Add(slides.SlideLayoutType.TITLE_AND_OBJECT, "Title and Object")
# Добавить пустой слайд, используя добавленный макет слайда.
presentation.slides.insert_empty_slide(0, layout_slide)
# Сохранить презентацию на диск.
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Удаление неиспользуемых макетов слайдов
Aspose.Slides предоставляет метод remove_unused_layout_slides из класса Compress для удаления нежелательных и неиспользуемых макетов слайдов.
Следующий код Python показывает, как удалить макет слайда из презентации PowerPoint:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slides.lowcode.Compress.remove_unused_layout_slides(presentation)
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Добавление заменителей в макеты слайдов
Aspose.Slides предоставляет свойство LayoutSlide.placeholder_manager, которое позволяет добавлять новые заменители в макет слайда.
Этот менеджер содержит методы для следующих типов заменителей:
| PowerPoint Placeholder | Метод LayoutPlaceholderManager |
|---|---|
![]() |
add_content_placeholder(x: float, y: float, width: float, height: float) |
![]() |
add_vertical_content_placeholder(x: float, y: float, width: float, height: float) |
![]() |
add_text_placeholder(x: float, y: float, width: float, height: float) |
![]() |
add_vertical_text_placeholder(x: float, y: float, width: float, height: float) |
![]() |
add_picture_placeholder(x: float, y: float, width: float, height: float) |
![]() |
add_chart_placeholder(x: float, y: float, width: float, height: float) |
![]() |
add_table_placeholder(x: float, y: float, width: float, height: float) |
![]() |
add_smart_art_placeholder(x: float, y: float, width: float, height: float) |
![]() |
add_media_placeholder(x: float, y: float, width: float, height: float) |
![]() |
add_online_image_placeholder(x: float, y: float, width: float, height: float) |
Следующий код Python демонстрирует, как добавить новые фигуры‑заменители к макету «Blank»:
import aspose.slides as slides
with slides.Presentation() as presentation:
# Получить пустой макет слайда.
layout = presentation.layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
# Получить менеджер заполнителей макета слайда.
placeholder_manager = layout.placeholder_manager
# Добавить различные заполнители к пустому макету слайда.
placeholder_manager.add_content_placeholder(20, 20, 310, 270)
placeholder_manager.add_vertical_text_placeholder(350, 20, 350, 270)
placeholder_manager.add_chart_placeholder(20, 310, 310, 180)
placeholder_manager.add_table_placeholder(350, 310, 350, 180)
# Добавить новый слайд с пустым макетом.
new_slide = presentation.slides.add_empty_slide(layout)
presentation.save("placeholders.pptx", slides.export.SaveFormat.PPTX)
Результат:

Установка видимости нижнего колонтитула для макета слайда
В презентациях PowerPoint элементы нижнего колонтитула, такие как дата, номер слайда и пользовательский текст, могут отображаться или скрываться в зависимости от макета слайда. Aspose.Slides for Python позволяет управлять видимостью этих заменителей нижнего колонтитула. Это полезно, когда требуется, чтобы некоторые макеты отображали информацию нижнего колонтитула, а другие оставались чистыми и минимальными.
- Создайте экземпляр класса Presentation.
- Получите ссылку на макет слайда по его индексу.
- Установите видимость заменителя нижнего колонтитула слайда.
- Установите видимость заменителя номера слайда.
- Установите видимость заменителя даты‑времени.
- Сохраните презентацию.
Следующий код Python показывает, как установить видимость нижнего колонтитула слайда и выполнить связанные действия:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
header_footer_manager = presentation.layout_slides[0].header_footer_manager
if not header_footer_manager.is_footer_visible:
header_footer_manager.set_footer_visibility(True)
if not header_footer_manager.is_slide_number_visible:
header_footer_manager.set_slide_number_visibility(True)
if not header_footer_manager.is_date_time_visible:
header_footer_manager.set_date_time_visibility(True)
header_footer_manager.set_footer_text("Footer text")
header_footer_manager.set_date_time_text("Date and time text")
presentation.save("output.ppt", slides.export.SaveFormat.PPT)
Установка видимости нижнего колонтитула для дочерних слайдов
В презентациях PowerPoint элементы нижнего колонтитула, такие как дата, номер слайда и пользовательский текст, могут управляться на уровне главного слайда для обеспечения согласованности во всех макетах слайдов. Aspose.Slides for Python позволяет задавать видимость и содержимое этих заменителей нижнего колонтитула на главном слайде и распространять эти настройки на все дочерние макеты слайдов. Такой подход обеспечивает единообразную информацию нижнего колонтитула по всей презентации.
- Создайте экземпляр класса Presentation.
- Получите ссылку на главный слайд по его индексу.
- Установите видимость всех дочерних заменителей нижнего колонтитула вместе с главным.
- Установите видимость всех дочерних заменителей номера слайда вместе с главным.
- Установите видимость всех дочерних заменителей даты‑времени вместе с главным.
- Сохраните презентацию.
Следующий код Python демонстрирует эту операцию:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
header_footer_manager = presentation.masters[0].header_footer_manager
header_footer_manager.set_footer_and_child_footers_visibility(True)
header_footer_manager.set_slide_number_and_child_slide_numbers_visibility(True)
header_footer_manager.set_date_time_and_child_date_times_visibility(True)
header_footer_manager.set_footer_and_child_footers_text("Footer text")
header_footer_manager.set_date_time_and_child_date_times_text("Date and time text")
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
FAQ
В чём разница между главным слайдом и макетом слайда?
Главный слайд определяет общую тему и форматирование по умолчанию, тогда как макеты слайдов задают конкретные расстановки заменителей для разных типов содержимого.
Могу ли я скопировать макет слайда из одной презентации в другую?
Да, вы можете клонировать макет слайда из коллекции layout_slides одной презентации и вставить его в другую с помощью метода add_clone.
Что происходит, если я удалю макет слайда, который всё ещё используется каким‑то слайдом?
Если попытаться удалить макет слайда, который всё ещё referenced хотя бы одним слайдом в презентации, Aspose.Slides выдаст PptxEditException. Чтобы избежать этого, используйте remove_unused_layout_slides, который безопасно удаляет только неиспользуемые макеты слайдов.









