Применить или изменить макет слайда в JavaScript
Обзор
Макет слайда определяет расположение полей‑заполнителей и форматирование содержимого на слайде. Он контролирует, какие заполнители доступны и где они отображаются. Макеты слайдов помогают быстро и последовательно создавать презентации — независимо от того, простую вы делаете или более сложную. Некоторые из самых распространённых макетов слайдов в PowerPoint включают:
Макет титульного слайда – Включает два текстовых заполнителя: один для заголовка и один для подзаголовка.
Макет «Заголовок и содержимое» – Содержит меньший заполнитель заголовка вверху и более крупный ниже для основного содержания (например, текста, маркеров, диаграмм, изображений и т.д.).
Пустой макет – Не содержит заполнителей, давая вам полный контроль над созданием слайда с нуля.
Макеты слайдов являются частью мастер‑слайда, который является верхнеуровневым слайдом, определяющим стили макетов для презентации. Вы можете получить доступ к макетам слайдов и изменять их через мастер‑слайд — по типу, имени или уникальному идентификатору. Кроме того, можно редактировать конкретный макет слайда непосредственно в презентации.
Чтобы работать с макетами слайдов в Aspose.Slides for Node.js, вы можете использовать:
- Методы, такие как getLayoutSlides и getMasters в классе Presentation
- Типы, такие как LayoutSlide, MasterLayoutSlideCollection, LayoutPlaceholderManager и LayoutSlideHeaderFooterManager
Info
Чтобы узнать больше о работе с мастер‑слайдами, ознакомьтесь со статьей Мастер слайдов.Добавление макетов слайдов в презентацию
Чтобы настроить внешний вид и структуру ваших слайдов, возможно, потребуется добавить новые макеты слайдов в презентацию. Aspose.Slides for Node.js позволяет проверить, существует ли уже конкретный макет, при необходимости добавить новый и использовать его для вставки слайдов на основе этого макета.
- Создайте экземпляр класса Presentation.
- Получите доступ к MasterLayoutSlideCollection.
- Проверьте, существует ли требуемый макет в коллекции. Если нет, добавьте нужный макет.
- Добавьте пустой слайд на основе нового макета.
- Сохраните презентацию.
Следующий код JavaScript демонстрирует, как добавить макет слайда в презентацию PowerPoint:
// Создать экземпляр класса Presentation, представляющего файл PowerPoint.
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
// Пройти по типам макетов слайдов, чтобы выбрать макет слайда.
let layoutSlides = presentation.getMasters().get_Item(0).getLayoutSlides();
let layoutSlide = null;
if (layoutSlides.getByType(java.newByte(aspose.slides.SlideLayoutType.TitleAndObject)) != null) {
layoutSlide = layoutSlides.getByType(java.newByte(aspose.slides.SlideLayoutType.TitleAndObject));
} else {
layoutSlide = layoutSlides.getByType(java.newByte(aspose.slides.SlideLayoutType.Title));
}
if (layoutSlide == null) {
// Ситуация, когда презентация не содержит все типы макетов.
// В файле презентации присутствуют только макеты Blank и Custom.
// Однако макеты с пользовательскими типами могут иметь узнаваемые имена,
// такие как "Title", "Title and Content" и т.д., которые можно использовать для выбора макета слайда.
// Также можно опираться на набор типов фигур-заполнителей.
// Например, слайд Title должен содержать только заполнитель типа Title и т.д.
for (let i = 0; i < layoutSlides.size(); i++) {
let titleAndObjectLayoutSlide = layoutSlides.get_Item(i);
if (titleAndObjectLayoutSlide.getName() === "Title and Object") {
layoutSlide = titleAndObjectLayoutSlide;
break;
}
}
if (layoutSlide == null) {
for (let i = 0; i < layoutSlides.size(); i++) {
let titleLayoutSlide = layoutSlides.get_Item(i);
if (titleLayoutSlide.getName() === "Title") {
layoutSlide = titleLayoutSlide;
break;
}
}
if (layoutSlide == null) {
layoutSlide = layoutSlides.getByType(java.newByte(aspose.slides.SlideLayoutType.Blank));
if (layoutSlide == null) {
layoutSlide = layoutSlides.add(java.newByte(aspose.slides.SlideLayoutType.TitleAndObject), "Title and Object");
}
}
}
}
// Добавить пустой слайд, используя добавленный макет слайда.
presentation.getSlides().insertEmptySlide(0, layoutSlide);
// Сохранить презентацию на диск.
presentation.save("output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Удаление неиспользуемых макетов слайдов
Aspose.Slides предоставляет метод removeUnusedLayoutSlides из класса Compress для удаления нежелательных и неиспользуемых макетов слайдов.
Следующий код JavaScript показывает, как удалить макет слайда из презентации PowerPoint:
let presentation = new aspose.slides.Presentation("Presentation.pptx");
try {
aspose.slides.Compress.removeUnusedLayoutSlides(presentation);
presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Добавление заполнителей в макеты слайдов
Aspose.Slides предоставляет метод LayoutSlide.getPlaceholderManager, который позволяет добавлять новые заполнители в макет слайда.
Этот менеджер содержит методы для следующих типов заполнителей:
| Заполнитель PowerPoint | Метод LayoutPlaceholderManager |
|---|---|
![]() |
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) |
![]() |
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) |
Следующий код JavaScript демонстрирует, как добавить новые фигуры‑заполнители к пустому макету слайда:
let presentation = new aspose.slides.Presentation();
try {
// Получить пустой макет слайда.
let layout = presentation.getLayoutSlides().getByType(java.newByte(aspose.slides.SlideLayoutType.Blank));
// Получить менеджер заполнителей макета слайда.
let placeholderManager = layout.getPlaceholderManager();
// Добавить различные заполнители к пустому макету слайда.
placeholderManager.addContentPlaceholder(20, 20, 310, 270);
placeholderManager.addVerticalTextPlaceholder(350, 20, 350, 270);
placeholderManager.addChartPlaceholder(20, 310, 310, 180);
placeholderManager.addTablePlaceholder(350, 310, 350, 180);
// Добавить новый слайд с пустым макетом.
let newSlide = presentation.getSlides().addEmptySlide(layout);
presentation.save("Placeholders.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Установка видимости нижнего колонтитула для макета слайда
В презентациях PowerPoint элементы нижнего колонтитула, такие как дата, номер слайда и пользовательский текст, могут отображаться или скрываться в зависимости от макета слайда. Aspose.Slides for Node.js позволяет управлять видимостью этих заполнителей нижнего колонтитула. Это полезно, когда вы хотите, чтобы определённые макеты показывали информацию нижнего колонтитула, а другие оставались чистыми и минимальными.
- Создайте экземпляр класса Presentation.
- Получите ссылку на макет слайда по его индексу.
- Установите видимость заполнителя нижнего колонтитула слайда.
- Установите видимость заполнителя номера слайда.
- Установите видимость заполнителя даты‑времени.
- Сохраните презентацию.
Следующий код JavaScript показывает, как установить видимость нижнего колонтитула слайда и выполнить связанные задачи:
let presentation = new aspose.slides.Presentation("Presentation.ppt");
try {
let headerFooterManager = presentation.getLayoutSlides().get_Item(0).getHeaderFooterManager();
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", aspose.slides.SaveFormat.Ppt);
} finally {
presentation.dispose();
}
Установка видимости нижнего колонтитула у дочерних слайдов
В презентациях PowerPoint элементы нижнего колонтитула, такие как дата, номер слайда и пользовательский текст, могут управляться на уровне мастер‑слайда для обеспечения согласованности во всех макетах. Aspose.Slides for Node.js позволяет задать видимость и содержание этих заполнителей нижнего колонтитула на мастер‑слайде и распространить эти настройки на все дочерние макеты слайдов. Такой подход обеспечивает единообразную информацию нижнего колонтитула по всей презентации.
- Создайте экземпляр класса Presentation.
- Получите ссылку на мастер‑слайд по его индексу.
- Установите видимость заполнителей нижнего колонтитула мастера и всех дочерних макетов.
- Установите видимость заполнителей номеров слайдов мастера и всех дочерних макетов.
- Установите видимость заполнителей даты‑времени мастера и всех дочерних макетов.
- Сохраните презентацию.
Следующий код JavaScript демонстрирует эту операцию:
let presentation = new aspose.slides.Presentation("Presentation.ppt");
try {
let headerFooterManager = presentation.getMasters().get_Item(0).getHeaderFooterManager();
headerFooterManager.setFooterAndChildFootersVisibility(true);
headerFooterManager.setSlideNumberAndChildSlideNumbersVisibility(true);
headerFooterManager.setDateTimeAndChildDateTimesVisibility(true);
headerFooterManager.setFooterAndChildFootersText("Footer text");
headerFooterManager.setDateTimeAndChildDateTimesText("Date and time text");
presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
В чём разница между мастер‑слайдом и макетом слайда?
Мастер‑слайд определяет общую тему и форматирование по умолчанию, тогда как макеты слайдов задают конкретное расположение заполнителей для разных типов содержимого.
Можно ли скопировать макет слайда из одной презентации в другую?
Да, вы можете клонировать макет слайда из коллекции макетов одной презентации, доступной через метод [getLayoutSlides], и вставить его в другую презентацию, используя метод addClone.
Что происходит, если удалить макет слайда, который всё ещё используется другим слайдом?
Если попытаться удалить макет слайда, на который ссылается хотя бы один слайд презентации, Aspose.Slides выбросит исключение [PptxEditException]. Чтобы избежать этого, используйте [removeUnusedLayoutSlides], который безопасно удалит только те макеты, которые не используются.









