Применить или изменить макет слайда в C#
Обзор
Макет слайда определяет расположение рамок заполнителей и форматирование содержимого на слайде. Он контролирует, какие заполнители доступны и где они располагаются. Макеты слайдов помогают быстро и последовательно создавать презентации — независимо от того, создаёте ли вы простой или более сложный материал. Некоторые из самых распространённых макетов слайдов в PowerPoint включают:
Макет титульного слайда – Содержит два текстовых заполнителя: один для заголовка и один для подзаголовка.
Макет «Заголовок и содержимое» – Содержит меньший заполнитель заголовка вверху и более крупный ниже для основного содержимого (текст, маркеры, диаграммы, изображения и т.д.).
Пустой макет – Не содержит заполнителей, предоставляя полный контроль над созданием слайда с нуля.
Макеты слайдов являются частью шаблона слайда, который представляет собой верхний уровень слайда, определяющий стили макетов для презентации. Вы можете получить доступ к макетам слайдов и изменять их через шаблон слайда — по типу, имени или уникальному идентификатору. Кроме того, можно редактировать конкретный макет слайда непосредственно в презентации.
Для работы с макетами слайдов в Aspose.Slides для .NET вы можете использовать:
- Свойства, такие как LayoutSlides и Masters в классе Presentation .
- Типы, такие как ILayoutSlide, IMasterLayoutSlideCollection, ILayoutPlaceholderManager, и ILayoutSlideHeaderFooterManager
Info
Чтобы узнать больше о работе с шаблонами слайдов, ознакомьтесь со статьёй Slide Master.Добавление макетов слайдов в презентации
Чтобы настроить внешний вид и структуру слайдов, возможно, потребуется добавить новые макеты слайдов в презентацию. Aspose.Slides для .NET позволяет проверить, существует ли конкретный макет, при необходимости добавить новый и использовать его для вставки слайдов на основе этого макета.
- Создайте экземпляр класса Presentation .
- Получите доступ к IMasterLayoutSlideCollection .
- Проверьте, существует ли требуемый макет слайда в коллекции. Если нет, добавьте нужный макет слайда.
- Добавьте пустой слайд на основе нового макета слайда.
- Сохраните презентацию.
Следующий код C# демонстрирует, как добавить макет слайда в презентацию PowerPoint:
// Создайте экземпляр класса Presentation, представляющего файл PowerPoint.
using (Presentation presentation = new Presentation("Sample.pptx"))
{
// Пройдитесь по типам макетов слайдов, чтобы выбрать макет слайда.
IMasterLayoutSlideCollection layoutSlides = presentation.Masters[0].LayoutSlides;
ILayoutSlide layoutSlide = layoutSlides.GetByType(SlideLayoutType.TitleAndObject) ?? layoutSlides.GetByType(SlideLayoutType.Title);
if (layoutSlide == null)
{
// Ситуация, когда презентация не содержит все типы макетов.
// Файл презентации содержит только типы макетов Blank и Custom.
// Однако макеты слайдов с пользовательскими типами могут иметь узнаваемые имена,
// такие как "Title", "Title and Content", etc., которые можно использовать для выбора макета слайда.
// Вы также можете полагаться на набор типов фигур-заполнителей.
// Например, слайд Title должен содержать только тип заполнителя Title, и т.д.
foreach (ILayoutSlide titleAndObjectLayoutSlide in layoutSlides)
{
if (titleAndObjectLayoutSlide.Name == "Title and Object")
{
layoutSlide = titleAndObjectLayoutSlide;
break;
}
}
if (layoutSlide == null)
{
foreach (ILayoutSlide titleLayoutSlide in layoutSlides)
{
if (titleLayoutSlide.Name == "Title")
{
layoutSlide = titleLayoutSlide;
break;
}
}
if (layoutSlide == null)
{
layoutSlide = layoutSlides.GetByType(SlideLayoutType.Blank);
if (layoutSlide == null)
{
layoutSlide = layoutSlides.Add(SlideLayoutType.TitleAndObject, "Title and Object");
}
}
}
}
// Добавьте пустой слайд, используя добавленный макет слайда.
presentation.Slides.InsertEmptySlide(0, layoutSlide);
// Сохраните презентацию на диск.
presentation.Save("Output.pptx", SaveFormat.Pptx);
}
Удаление неиспользуемых макетов слайдов
Aspose.Slides предоставляет метод RemoveUnusedLayoutSlides из класса Compress , позволяющий удалять нежелательные и неиспользуемые макеты слайдов.
Следующий код C# показывает, как удалить макет слайда из презентации PowerPoint:
using (Presentation presentation = new Presentation("Presentation.pptx"))
{
Aspose.Slides.LowCode.Compress.RemoveUnusedLayoutSlides(presentation);
presentation.Save("Output.pptx", SaveFormat.Pptx);
}
Добавление заполнителей в макеты слайдов
Aspose.Slides предоставляет свойство ILayoutSlide.PlaceholderManager , которое позволяет добавлять новые заполнители в макет слайда.
Этот менеджер содержит методы для следующих типов заполнителей:
| Заполнитель PowerPoint | ILayoutPlaceholderManager Method |
|---|---|
| Содержимое | AddContentPlaceholder(float x, float y, float width, float height) |
| Содержимое (Вертикальное) | AddVerticalContentPlaceholder(float x, float y, float width, float height) |
| Текст | AddTextPlaceholder(float x, float y, float width, float height) |
| Текст (Вертикальный) | AddVerticalTextPlaceholder(float x, float y, float width, float height) |
| Изображение | AddPicturePlaceholder(float x, float y, float width, float height) |
| Диаграмма | AddChartPlaceholder(float x, float y, float width, float height) |
| Таблица | AddTablePlaceholder(float x, float y, float width, float height) |
| SmartArt | AddSmartArtPlaceholder(float x, float y, float width, float height) |
| Медиа | AddMediaPlaceholder(float x, float y, float width, float height) |
| Онлайн‑изображение | AddOnlineImagePlaceholder(float x, float y, float width, float height) |
Следующий код C# демонстрирует, как добавить новые формы‑заполнители к пустому макету слайда:
using (var presentation = new Presentation())
{
// Получить пустой макет слайда.
ILayoutSlide layout = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);
// Получить менеджер заполнителей макета слайда.
ILayoutPlaceholderManager placeholderManager = layout.PlaceholderManager;
// Добавить различные заполнители к пустому макету слайда.
placeholderManager.AddContentPlaceholder(20, 20, 310, 270);
placeholderManager.AddVerticalTextPlaceholder(350, 20, 350, 270);
placeholderManager.AddChartPlaceholder(20, 310, 310, 180);
placeholderManager.AddTablePlaceholder(350, 310, 350, 180);
// Добавить новый слайд с пустым макетом.
ISlide newSlide = presentation.Slides.AddEmptySlide(layout);
presentation.Save("Placeholders.pptx", SaveFormat.Pptx);
}
Результат:

Установка видимости нижнего колонтитула для макета слайда
В презентациях PowerPoint элементы нижнего колонтитула, такие как дата, номер слайда и пользовательский текст, могут отображаться или скрываться в зависимости от макета слайда. Aspose.Slides для .NET позволяет управлять видимостью этих заполнителей нижнего колонтитула. Это полезно, когда нужно, чтобы некоторые макеты показывали информацию нижнего колонтитула, а остальные оставались чистыми и минимальными.
- Создайте экземпляр класса Presentation .
- Получите ссылку на макет слайда по его индексу.
- Установите видимость заполнителя нижнего колонтитула слайда.
- Установите видимость заполнителя номера слайда.
- Установите видимость заполнителя даты и времени. Сохраните презентацию.
Следующий код C# показывает, как установить видимость нижнего колонтитула слайда и выполнить связанные задачи:
using (Presentation presentation = new Presentation("Presentation.ppt"))
{
ILayoutSlideHeaderFooterManager headerFooterManager = presentation.LayoutSlides[0].HeaderFooterManager;
if (!headerFooterManager.IsFooterVisible)
{
headerFooterManager.SetFooterVisibility(true);
}
if (!headerFooterManager.IsSlideNumberVisible)
{
headerFooterManager.SetSlideNumberVisibility(true);
}
if (!headerFooterManager.IsDateTimeVisible)
{
headerFooterManager.SetDateTimeVisibility(true);
}
headerFooterManager.SetFooterText("Footer text");
headerFooterManager.SetDateTimeText("Date and time text");
presentation.Save("Presentation.ppt", SaveFormat.Ppt);
}
Установка видимости нижнего колонтитула у дочерних слайдов
В презентациях PowerPoint элементы нижнего колонтитула, такие как дата, номер слайда и пользовательский текст, могут контролироваться на уровне шаблона слайда, чтобы обеспечить согласованность во всех макетах слайдов. Aspose.Slides для .NET позволяет задать видимость и содержание этих заполнителей нижнего колонтитула на шаблоне слайда и распространить эти настройки на все дочерние макеты слайдов. Такой подход обеспечивает единообразную информацию нижнего колонтитула по всей презентации.
- Создайте экземпляр класса Presentation .
- Получите ссылку на шаблон слайда по его индексу.
- Установите видимость заполнителей нижнего колонтитула шаблона и всех дочерних макетов.
- Установите видимость заполнителей номеров слайдов шаблона и всех дочерних макетов.
- Установите видимость заполнителей даты и времени шаблона и всех дочерних макетов.
- Сохраните презентацию.
Следующий код C# демонстрирует эту операцию:
using (Presentation presentation = new Presentation("Presentation.ppt"))
{
IMasterSlideHeaderFooterManager headerFooterManager = presentation.Masters[0].HeaderFooterManager;
headerFooterManager.SetFooterAndChildFootersVisibility(true);
headerFooterManager.SetSlideNumberAndChildSlideNumbersVisibility(true);
headerFooterManager.SetDateTimeAndChildDateTimesVisibility(true);
headerFooterManager.SetFooterAndChildFootersText("Footer text");
headerFooterManager.SetDateTimeAndChildDateTimesText("Date and time text");
presentation.Save("Output.pptx", SaveFormat.Pptx);
}
FAQ
В чём разница между шаблоном слайда и макетом слайда?
Шаблон слайда определяет общую тему и форматирование по умолчанию, тогда как макеты слайдов задают конкретные расположения заполнителей для различных типов содержимого.
Могу ли я скопировать макет слайда из одной презентации в другую?
Да, вы можете клонировать макет слайда из коллекции LayoutSlides одной презентации и вставить его в другую с помощью метода AddClone.
Что происходит, если я удалю макет слайда, который всё ещё используется другим слайдом?
Если попытаться удалить макет слайда, который всё ещё присутствует в качестве ссылки у хотя бы одного слайда презентации, Aspose.Slides выдаст исключение PptxEditException. Чтобы избежать этого, используйте RemoveUnusedLayoutSlides…, которое безопасно удаляет только неиспользуемые макеты слайдов.