Управление заголовками и нижними колонтитулами презентаций в C++
Aspose.Slides for C++ предоставляет возможность управления заголовками и нижними колонтитулами внутри слайдов презентации. Они фактически управляются на уровне мастера презентации.
Управление текстом заголовка и нижнего колонтитула
Примечания к некоторому конкретному слайду могут быть обновлены, как показано в примере ниже:
// Функция для установки текста заголовка/нижнего колонтитула
void UpdateHeaderFooterText(System::SharedPtr<IBaseSlide> master)
{
for (const auto& shape : System::IterateOver(master->get_Shapes()))
{
if (shape->get_Placeholder() != nullptr)
{
if (shape->get_Placeholder()->get_Type() == PlaceholderType::Header)
{
(System::ExplicitCast<IAutoShape>(shape))->get_TextFrame()->set_Text(u"HI there new header");
}
}
}
}
// Загрузка презентации
auto pres = System::MakeObject<Presentation>(u"headerTest.pptx");
// Установка нижнего колонтитула
pres->get_HeaderFooterManager()->SetAllFootersText(u"My Footer text");
pres->get_HeaderFooterManager()->SetAllFootersVisibility(true);
// Доступ и обновление заголовка
auto masterNotesSlide = pres->get_MasterNotesSlideManager()->get_MasterNotesSlide();
if (nullptr != masterNotesSlide)
{
UpdateHeaderFooterText(masterNotesSlide);
}
// Сохранение презентации
pres->Save(u"HeaderFooterJava.pptx", SaveFormat::Pptx);
Управление заголовками и нижними колонтитулами на раздаточных и слайдах примечаний
Aspose.Slides for C++ поддерживает заголовки и нижние колонтитулы в раздаточных листах и слайдах примечаний. Пожалуйста, выполните следующие шаги:
- Загрузите Presentation содержащий видео.
- Измените настройки Header и Footer для master‑примечаний и всех слайдов примечаний.
- Сделайте видимыми master‑слайд примечаний и все дочерние заполнители Footer.
- Сделайте видимыми master‑слайд примечаний и все дочерние заполнители Date and time.
- Измените настройки Header и Footer только для первого слайда примечаний.
- Сделайте видимым заполнитель Header на слайде примечаний.
- Установите текст в заполнитель Header слайда примечаний.
- Установите текст в заполнитель Date-time слайда примечаний.
- Запишите изменённый файл презентации.
Фрагмент кода предоставлен в примере ниже.
auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");
// Изменить настройки заголовка и нижнего колонтитула для мастер‑заметок и всех слайдов заметок
auto masterNotesSlide = presentation->get_MasterNotesSlideManager()->get_MasterNotesSlide();
if (masterNotesSlide != nullptr)
{
auto headerFooterManager = masterNotesSlide->get_HeaderFooterManager();
// сделать мастер‑слайд заметок и все дочерние заполняющие элементы Footer видимыми
headerFooterManager->SetHeaderAndChildHeadersVisibility(true);
// сделать мастер‑слайд заметок и все дочерние заполняющие элементы Header видимыми
headerFooterManager->SetFooterAndChildFootersVisibility(true);
// сделать мастер‑слайд заметок и все дочерние заполняющие элементы SlideNumber видимыми
headerFooterManager->SetSlideNumberAndChildSlideNumbersVisibility(true);
// сделать мастер‑слайд заметок и все дочерние заполняющие элементы Date and time видимыми
headerFooterManager->SetDateTimeAndChildDateTimesVisibility(true);
// установить текст для мастер‑слайда заметок и всех дочерних заполняющих элементов Header
headerFooterManager->SetHeaderAndChildHeadersText(u"Header text");
// установить текст для мастер‑слайда заметок и всех дочерних заполняющих элементов Footer
headerFooterManager->SetFooterAndChildFootersText(u"Footer text");
// установить текст для мастер‑слайда заметок и всех дочерних заполняющих элементов Date and time
headerFooterManager->SetDateTimeAndChildDateTimesText(u"Date and time text");
}
// Изменить настройки заголовка и нижнего колонтитула только для первого слайда заметок
auto notesSlide = presentation->get_Slides()->idx_get(0)->get_NotesSlideManager()->get_NotesSlide();
if (notesSlide != nullptr)
{
auto headerFooterManager = notesSlide->get_HeaderFooterManager();
if (!headerFooterManager->get_IsHeaderVisible())
{
// сделать видимым заполнитель Header этого слайда заметок
headerFooterManager->SetHeaderVisibility(true);
}
if (!headerFooterManager->get_IsFooterVisible())
{
// сделать видимым заполнитель Footer этого слайда заметок
headerFooterManager->SetFooterVisibility(true);
}
if (!headerFooterManager->get_IsSlideNumberVisible())
{
// сделать видимым заполнитель SlideNumber этого слайда заметок
headerFooterManager->SetSlideNumberVisibility(true);
}
if (!headerFooterManager->get_IsDateTimeVisible())
{
// сделать видимым заполнитель Date-time этого слайда заметок
headerFooterManager->SetDateTimeVisibility(true);
}
// установить текст в заполнитель Header слайда заметок
headerFooterManager->SetHeaderText(u"New header text");
// установить текст в заполнитель Footer слайда заметок
headerFooterManager->SetFooterText(u"New footer text");
// установить текст в заполнитель Date-time слайда заметок
headerFooterManager->SetDateTimeText(u"New date and time text");
}
presentation->Save(u"testresult.pptx", SaveFormat::Pptx);
FAQ
Могу ли я добавить “header” к обычным слайдам?
В PowerPoint “Header” существует только для примечаний и раздаточных материалов; на обычных слайдах поддерживаемыми элементами являются нижний колонтитул, дата/время и номер слайда. В Aspose.Slides это соответствует тем же ограничениям: header только для Notes/Handout, а на слайдах — Footer/DateTime/SlideNumber.
Что если в макете нет области footer — могу ли я “включить” её видимость?
Да. Проверьте видимость через менеджер header/footer и включите её при необходимости. Эти индикаторы и методы API предназначены для случаев, когда заполнитель отсутствует или скрыт.
Как сделать, чтобы номер слайда начинался с значения, отличного от 1?
Установите first slide number; после этого вся нумерация пересчитывается. Например, можно начать с 0 или 10 и скрыть номер на титульном слайде.
Что происходит с заголовками/нижними колонтитулами при экспорте в PDF/изображения/HTML?
Они рендерятся как обычные текстовые элементы презентации. То есть, если элементы видимы на слайдах/страницах примечаний, они также появятся в выходном формате вместе с остальным содержимым.