Макет слайда
Макет слайда содержит заполнитель и информацию о форматировании для всего содержимого, которое появляется на слайде. Макет определяет доступные заполнители содержимого и их размещение.
Макеты слайдов позволяют быстро создавать и разрабатывать презентации (независимо от того, простые они или сложные). Вот некоторые из самых популярных макетов слайдов, используемых в презентациях PowerPoint:
- Макет титульного слайда. Этот макет состоит из двух заполнителей текста. Один заполнитель предназначен для заголовка, а другой – для подзаголовка.
- Макет заголовка и содержимого. Этот макет содержит относительно небольшой заполнитель вверху для заголовка и больший заполнитель для основного содержимого (графика, параграфы, маркированный список, нумерованный список, изображения и т. д.).
- Пустой макет. Этот макет не содержит заполнителей, поэтому позволяет создавать элементы с нуля.
Поскольку мастер-слайд является верхним иерархическим слайдом, который хранит информацию о макетах слайдов, вы можете использовать мастер-слайд для доступа к макетам слайдов и внесения изменений в них. Макет слайда можно получить по типу или имени. Аналогично, каждый слайд имеет уникальный идентификатор, который можно использовать для доступа к нему.
Кроме того, вы можете вносить изменения напрямую в конкретный макет слайда в презентации.
- Чтобы позволить вам работать с макетами слайдов (включая те, что находятся в мастер-слайдах), Aspose.Slides предоставляет свойства, такие как get_LayoutSlides() и get_Masters() в классе Presentation.
- Для выполнения связанных задач Aspose.Slides предоставляет MasterSlide, MasterLayoutSlideCollection, SlideSize, BaseSlideHeaderFooterManager и многие другие типы.
Информация
Для получения более подробной информации о работе с мастер-слайдами в частности, смотрите статью Мастер-слайд.Добавить макет слайда в презентацию
- Создайте экземпляр класса Presentation.
- Получите доступ к коллекции MasterSlide.
- Просмотрите существующие макеты слайдов, чтобы подтвердить, что необходимый макет слайда уже существует в коллекции макетов слайдов. В противном случае добавьте нужный макет слайда.
- Добавьте пустой слайд на основе нового макета слайда.
- Сохраните презентацию.
Этот код на C++ показывает, как добавить макет слайда в презентацию PowerPoint:
// Путь к директории документов.
const String templatePath = u"../templates/AddSlides.pptx";
const String outPath = u"../out/AddLayoutSlides.pptx";
// Создает экземпляр класса Presentation, который представляет файл презентации.
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Проходит через типы макетов слайдов.
SharedPtr<IMasterLayoutSlideCollection> layoutSlides = pres->get_Masters()->idx_get(0)->get_LayoutSlides();
SharedPtr<ILayoutSlide> layoutSlide;
if (layoutSlides->GetByType(SlideLayoutType::TitleAndObject) != NULL)
{
layoutSlide = layoutSlides->GetByType(SlideLayoutType::TitleAndObject);
}
else if (layoutSlides->GetByType(SlideLayoutType::Title) != NULL)
{
layoutSlide = layoutSlides->GetByType(SlideLayoutType::Title);
}
if (layoutSlide == NULL)
{
// Ситуация, когда презентация не содержит некоторые типы макетов.
// Файл презентации содержит только пустые и пользовательские типы макетов.
// Но макеты слайдов с пользовательскими типами имеют разные имена слайдов,
// такие как "Заголовок", "Заголовок и содержимое" и т. д. И эти
// имена можно использовать для выбора макета слайда.
// Вы также можете использовать набор типов заполнителей форм. Например,
// титульный слайд должен иметь только тип заполнителя "Заголовок" и т. д.
for (int i = 0; i < layoutSlides->get_Count(); i++)
{
SharedPtr<ILayoutSlide> titleAndObjectLayoutSlide = layoutSlides->idx_get(i);
if (titleAndObjectLayoutSlide->get_Name().Equals(u"Title and Object"))
{
layoutSlide = titleAndObjectLayoutSlide;
break;
}
}
if (layoutSlide == NULL)
{
for (int i = 0; i < layoutSlides->get_Count(); i++)
{
SharedPtr<ILayoutSlide> titleLayoutSlide = layoutSlides->idx_get(i);
if (titleLayoutSlide->get_Name().Equals(u"Title"))
{
layoutSlide = titleLayoutSlide;
break;
}
}
if (layoutSlide == NULL)
{
layoutSlide = layoutSlides->GetByType(SlideLayoutType::Blank);
if (layoutSlide == NULL)
{
layoutSlide = layoutSlides->Add(SlideLayoutType::TitleAndObject, u"Title and Object");
}
}
}
}
// Добавляет пустой слайд с добавленным макетом слайда.
pres->get_Slides()->InsertEmptySlide(0, layoutSlide);
// Сохраните презентацию на диск.
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Удалить неиспользуемый макет слайда
Aspose.Slides предоставляет метод RemoveUnusedLayoutSlides() из класса Compress, который позволяет вам удалять ненужные и неиспользуемые макеты слайдов. Этот код на C++ показывает, как удалить макет слайда из презентации PowerPoint:
auto pres = System::MakeObject<Presentation>(u"pres.pptx");
LowCode::Compress::RemoveUnusedLayoutSlides(pres);
pres->Save(u"pres-out.pptx", SaveFormat::Pptx);
Установить размер и тип для макета слайда
Чтобы установить размер и тип для конкретного макета слайда, Aspose.Slides предоставляет свойства get_Type() и get_Size() (из класса Presentation). Этот C++ код демонстрирует операцию:
// Путь к директории документов.
const String templatePath = u"../templates/AddSlides.pptx";
const String outPath = u"../out/CloneToAnotherPresentationWithSetSizeAndType.pptx";
// Создает объект Presentation, который представляет файл презентации.
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
SharedPtr<Presentation> destPres = MakeObject<Presentation>();
// Получает слайды по идентификатору из коллекции.
SharedPtr<ISlideCollection> slideCollection = destPres->get_Slides();
// Устанавливает размер слайда для сгенерированной презентации в соответствии с размером источника.
destPres->get_SlideSize()->SetSize(pres->get_SlideSize()->get_Type(), Aspose::Slides::SlideSizeScaleType::DoNotScale);
slideCollection->InsertClone(1, pres->get_Slides()->idx_get(0));
// Сохраняет презентацию на диск.
destPres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Установить видимость нижнего колонтитула внутри слайда
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд через его индекс.
- Установите заполнитель нижнего колонтитула слайда в видимый режим.
- Установите заполнитель даты и времени в видимый режим.
- Сохраните презентацию.
Этот код на C++ показывает, как установить видимость для нижнего колонтитула слайда (и выполнить связанные задачи):
// Путь к директории документов.
const String outPath = u"../out/HeaderFooterManager_out.pptx";
SharedPtr<Presentation> presentation = MakeObject<Presentation>();
// Создает класс SlideCollection.
SharedPtr<ISlideCollection> slds = presentation->get_Slides();
// SharedPtr<IBaseSlideHeaderFooterManager> headerFooterManager = presentation->get_Slides()->idx_get(0)->get_HeaderFooterManager();
SharedPtr<IMasterSlideHeaderFooterManager> headerFooterManager = presentation->get_Masters()->idx_get(0)->get_HeaderFooterManager();
if (!headerFooterManager->get_IsFooterVisible()) // Свойство IsFooterVisible используется для указания на отсутствие заполнителя нижнего колонтитула слайда.
{
headerFooterManager->SetFooterVisibility(true); // Метод SetFooterVisibility используется для установки видимости заполнителя нижнего колонтитула слайда.
}
if (!headerFooterManager->get_IsSlideNumberVisible()) // Свойство IsSlideNumberVisible используется для указания, что заполнителя номера страницы слайда отсутствует.
{
headerFooterManager->SetSlideNumberVisibility(true); // Метод SetSlideNumberVisibility используется для установки видимости заполнителя номера страницы слайда.
}
if (!headerFooterManager->get_IsDateTimeVisible()) // Свойство IsDateTimeVisible используется для указания, что заполнителя даты и времени слайда отсутствует.
{
headerFooterManager->SetDateTimeVisibility(true); // Метод SetFooterVisibility используется для установки видимости заполнителя даты и времени слайда.
}
headerFooterManager->SetFooterText(u"Текст нижнего колонтитула"); // Метод SetFooterText используется для установки текста для заполнителя нижнего колонтитула слайда.
headerFooterManager->SetDateTimeText(u"Текст даты и времени"); // Метод SetDateTimeText используется для установки текста для заполнителя даты и времени слайда.
// Сохраняет презентацию на диск.
presentation->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Установить видимость дочернего нижнего колонтитула внутри слайда
- Создайте экземпляр класса Presentation.
- Получите ссылку на мастер-слайд по индексу.
- Установите мастер-слайд и все заполнители дочерних нижних колонтитулов в видимый режим.
- Установите текст для мастер-слайда и всех заполнителей дочерних нижних колонтитулов.
- Установите текст для мастер-слайда и всех заполнителей дочерних дат и времени.
- Сохраните презентацию.
Этот код на C++ демонстрирует операцию:
// Путь к директории документов.
const String outPath = u"../out/SetChildFooter_out.pptx";
SharedPtr<Presentation> presentation = MakeObject<Presentation>();
// Создает класс SlideCollection.
SharedPtr<ISlideCollection> slds = presentation->get_Slides();
SharedPtr<IMasterSlideHeaderFooterManager> headerFooterManager = presentation->get_Masters()->idx_get(0)->get_HeaderFooterManager();
headerFooterManager->SetFooterAndChildFootersVisibility(true); // Метод SetFooterAndChildFootersVisibility используется для установки мастер-слайда и всех заполнителей дочерних нижних колонтитулов в видимый режим.
headerFooterManager->SetSlideNumberAndChildSlideNumbersVisibility(true); // Метод SetSlideNumberAndChildSlideNumbersVisibility используется для установки мастер-слайда и всех заполнителей дочерних номеров страниц в видимый режим.
headerFooterManager->SetDateTimeAndChildDateTimesVisibility(true); // Метод SetDateTimeAndChildDateTimesVisibility используется для установки мастер-слайда и всех заполнителей дочерних дат и времени в видимый режим.
headerFooterManager->SetFooterAndChildFootersText(u"Текст нижнего колонтитула"); // Метод SetFooterAndChildFootersText используется для установки текстов для мастер-слайда и всех заполнителей дочерних нижних колонтитулов.
headerFooterManager->SetDateTimeAndChildDateTimesText(u"Текст даты и времени"); // Метод SetDateTimeAndChildDateTimesText используется для установки текста для мастер-слайда и всех заполнителей дочерних дат и времени.
presentation->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Установить размер слайда с учетом масштабирования содержимого
- Создайте экземпляр класса Presentation и загрузите презентацию, содержащую слайд, размер которого вы хотите задать.
- Создайте другой экземпляр класса Presentation, чтобы создать новую презентацию.
- Получите ссылку на слайд (из первой презентации) по индексу.
- Установите заполнитель нижнего колонтитула слайда в видимый режим.
- Установите заполнитель даты и времени в видимый режим.
- Сохраните презентацию.
Этот код на C++ демонстрирует операцию:
// Путь к директории документов.
const String templatePath = u"../templates/AccessSlides.pptx";
const String outPath = u"../out/SetSlideSizeScale_out.pptx";
SharedPtr<Presentation> presentation = MakeObject<Presentation>(templatePath);
SharedPtr<Presentation> auxPresentation = MakeObject<Presentation>();
// Создает класс SlideCollection.
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);
// Устанавливает размер слайда для созданных презентаций в соответствии с размером источника.
auxPresentation->get_SlideSize()->SetSize(540, 720, SlideSizeScaleType::EnsureFit); // Метод SetSize используется для установки размера слайда с масштабированием содержимого для соответствия размеру.
auxPresentation->get_SlideSize()->SetSize(SlideSizeType::A4Paper, SlideSizeScaleType::Maximize); // Метод SetSize используется для установки размера слайда с максимальным размером содержимого.
auxPresentation->get_Slides()->InsertClone(0, slide);
auxPresentation->get_Slides()->RemoveAt(0);
// Сохраняет презентацию.
presentation->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Установить размер страницы при генерации PDF
Некоторые презентации (например, постеры) часто конвертируются в PDF-документы. Если вы хотите преобразовать свою PowerPoint-презентацию в PDF, чтобы использовать наилучшие параметры печати и доступности, вам нужно установить размеры слайдов, соответствующие PDF-документам (например, A4).
Aspose.Slides предоставляет класс SlideSize, чтобы вы могли указать свои предпочтительные настройки для слайдов. Этот код на C++ показывает, как использовать свойство get_Type() (из класса SlideSize
), чтобы установить конкретный размер бумаги для слайдов в презентации:
// Путь к директории документов.
const String outPath = u"../out/SetPDFPageSize_out.pptx";
// Создает объект Presentation, который представляет файл презентации.
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Устанавливает свойство SlideSize.Type.
pres->get_SlideSize()->SetSize(SlideSizeType::A4Paper, SlideSizeScaleType::EnsureFit);
// Устанавливает различные свойства параметров PDF.
Aspose::Slides::Export::PdfOptions opts = Aspose::Slides::Export::PdfOptions();
opts.set_SufficientResolution (600);
// Сохраняет презентацию.
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pdf, &opts);