Prezentáció fejlécek és láblécek kezelése C++-ban

Áttekintés

A PowerPoint különböző fejléc- és lábléchelyfoglalókat használ az oldaltípustól függően. Az Aspose.Slides for C++ lehetővé teszi, hogy ezeket a helyfoglalókat a fejléc/lábléc kezelői felületeken keresztül szabályozza a szöveg és a láthatóság szempontjából.

Az elérhető helyfoglalók a hatókör függvényei:

Hatókör Fejléc Lábléc Dátum/idő Dia/oldalszám
Normál dia Nem Igen Igen Igen
Jegyzet-mester Igen Igen Igen Igen
Jegyzet dia Igen Igen Igen Igen
Kézjegyzék-mester Igen Igen Igen Igen

Egy normál prezentációs diának nincs fejléchelyfoglalója. A fejlécek a jegyzetoldalakon és a kézjegyzékeken érhetők el. Normál diák esetén a lábléc, a dátum/idő és a diaszám helyfoglalókat használja helyette.

A módosítás hatóköre attól a kezelőtől függ, amelyet használ. Az ISlideHeaderFooterManager interfész egy normál diát vezérel. Az INotesSlideHeaderFooterManager interfész egy jegyzet-diat vezérel. A mester- és elrendezéskezelők szintén képesek a beállításokat a függő diákra propagálni, míg a IMasterHandoutSlideHeaderFooterManager interfész a kézjegyzék-mestert kezeli.

Lábléc, Dátum/Idő és Diaszámok beállítása normál diákon

Normál diák esetén az alapmunkafolyamat az, hogy elérje minden dia fejléc/lábléc kezelőjét, beállítsa a lábléc és a dátum/idő szöveget, engedélyezze a szükséges helyfoglalókat, és mentse a prezentációt. A diaszámokat a prezentáció generálja, ezért csak a láthatóságukat kell szabályoznia.

Használja a SetFooterText és a SetDateTimeText metódusokat a szöveg beállításához, illetve a SetFooterVisibility, a SetDateTimeVisibility és a SetSlideNumberVisibility metódusokat a megfelelő helyfoglalók megjelenítéséhez.

Az alábbi teljes példa ugyanazt a láblécet, dátum/idő szöveget és diaszám láthatóságot alkalmazza minden normál diára:

#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/ISlideHeaderFooterManager.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/enumerator_adapter.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");

for (const auto& slide : System::IterateOver(presentation->get_Slides()))
{
    auto headerFooterManager = slide->get_HeaderFooterManager();

    headerFooterManager->SetFooterText(u"Company Confidential");
    headerFooterManager->SetFooterVisibility(true);

    headerFooterManager->SetDateTimeText(u"Date and time text");
    headerFooterManager->SetDateTimeVisibility(true);

    headerFooterManager->SetSlideNumberVisibility(true);
}

presentation->Save(u"presentation_with_slide_footers.pptx", SaveFormat::Pptx);

Ha csak egy diát kell frissíteni, érje el azt közvetlenül a Presentation::get_Slide segítségével, a teljes dia gyűjtemény iterálása helyett.

Fejlécek és Láblécek beállítása a Jegyzet-mesteren

A jegyzet-mester meghatározza a közös formázást és a helyfoglalók viselkedését a jegyzetoldalak számára. Használja az IMasterNotesSlideHeaderFooterManager interfészt, ha csak magát a jegyzet-mestert akarja módosítani.

Az alábbi példa beállítja a fejlécet, a láblécet és a dátum/idő szöveget a jegyzet-mesteren, és láthatóvá teszi az összes támogatott helyfoglalót ezen a mesteren:

#include <DOM/IMasterNotesSlide.h>
#include <DOM/IMasterNotesSlideHeaderFooterManager.h>
#include <DOM/IMasterNotesSlideManager.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");
auto masterNotesSlide = presentation->get_MasterNotesSlideManager()->get_MasterNotesSlide();

if (masterNotesSlide != nullptr)
{
    auto headerFooterManager = masterNotesSlide->get_HeaderFooterManager();

    headerFooterManager->SetHeaderText(u"Notes header");
    headerFooterManager->SetHeaderVisibility(true);

    headerFooterManager->SetFooterText(u"Notes footer");
    headerFooterManager->SetFooterVisibility(true);

    headerFooterManager->SetDateTimeText(u"Date and time text");
    headerFooterManager->SetDateTimeVisibility(true);

    headerFooterManager->SetSlideNumberVisibility(true);
}

presentation->Save(u"presentation_with_notes_master_footers.pptx", SaveFormat::Pptx);

Az IMasterNotesSlideManager::get_MasterNotesSlide metódus nullptr-t ad vissza, ha a prezentáció nem tartalmaz jegyzet-mestert.

Jegyzet-mester beállításainak alkalmazása a gyermek jegyzet-diapokra

A jegyzet-mester a fejléc- és láblécbeállításokat saját magára és minden függő jegyzet-diarra alkalmazhatja. Használja a dedikált propagációs metódusokat az IMasterNotesSlideHeaderFooterManager esetén, ha ugyanazokat a beállításokat a jegyzet-hierarchiában kell alkalmazni.

Például a SetHeaderAndChildHeadersText és a SetHeaderAndChildHeadersVisibility frissíti a jegyzet-mester fejlécét és minden gyermekfejlécet. Hasonló metódusok állnak rendelkezésre a láblécek, a dátum/idő és a diaszámok esetén.

#include <DOM/IMasterNotesSlide.h>
#include <DOM/IMasterNotesSlideHeaderFooterManager.h>
#include <DOM/IMasterNotesSlideManager.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");
auto masterNotesSlide = presentation->get_MasterNotesSlideManager()->get_MasterNotesSlide();

if (masterNotesSlide != nullptr)
{
    auto headerFooterManager = masterNotesSlide->get_HeaderFooterManager();

    headerFooterManager->SetHeaderAndChildHeadersText(u"Notes header");
    headerFooterManager->SetHeaderAndChildHeadersVisibility(true);

    headerFooterManager->SetFooterAndChildFootersText(u"Notes footer");
    headerFooterManager->SetFooterAndChildFootersVisibility(true);

    headerFooterManager->SetDateTimeAndChildDateTimesText(u"Date and time text");
    headerFooterManager->SetDateTimeAndChildDateTimesVisibility(true);

    headerFooterManager->SetSlideNumberAndChildSlideNumbersVisibility(true);
}

presentation->Save(u"presentation_with_child_notes_footers.pptx", SaveFormat::Pptx);

A fent használt propagációs metódusok a SetFooterAndChildFootersText, a SetFooterAndChildFootersVisibility, a SetDateTimeAndChildDateTimesText, a SetDateTimeAndChildDateTimesVisibility valamint a SetSlideNumberAndChildSlideNumbersVisibility metódusok.

Fejlécek és láblécek beállítása egy egyedi jegyzet-dian

Egy jegyzet-dia egy adott normál diahoz tartozik. Használja annak INotesSlideHeaderFooterManager interfészét, ha csak azt a jegyzet-oldalt szeretné testre szabni.

A INotesSlideManager::AddNotesSlide metódus visszaadja az aktuális dia jegyzet-diaját, és létrehoz egyet, ha még nem létezik. Az alábbi példa az első prezentációs diához tartozó jegyzet-oldalt konfigurálja:

#include <DOM/INotesSlide.h>
#include <DOM/INotesSlideHeaderFooterManager.h>
#include <DOM/INotesSlideManager.h>
#include <DOM/ISlide.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");
auto slide = presentation->get_Slide(0);
auto notesSlide = slide->get_NotesSlideManager()->AddNotesSlide();
auto headerFooterManager = notesSlide->get_HeaderFooterManager();

headerFooterManager->SetHeaderText(u"Header for the first notes page");
headerFooterManager->SetHeaderVisibility(true);

headerFooterManager->SetFooterText(u"Footer for the first notes page");
headerFooterManager->SetFooterVisibility(true);

headerFooterManager->SetDateTimeText(u"Date and time text");
headerFooterManager->SetDateTimeVisibility(true);

headerFooterManager->SetSlideNumberVisibility(true);

presentation->Save(u"presentation_with_custom_notes_footers.pptx", SaveFormat::Pptx);

Ha először a jegyzet-mestertől propagálja a beállításokat, majd módosít egy egyedi jegyzet-diat, az utóbbi per-dia beállítások lehetővé teszik, hogy önállóan testre szabja azt a jegyzet-oldalt.

Fejlécek és láblécek beállítása a Kézjegyzék-mesteren

A kézjegyzék-oldalak a kézjegyzék-mestert használják a fejléc, lábléc, dátum/idő és oldalszám helyfoglalóikhoz. A jegyzet-oldalakhoz képest a kézjegyzék beállításait a kézjegyzék-mester, nem pedig egyedi kézjegyzék-diák kezelik.

Használja a IMasterHandoutSlideManager::get_MasterHandoutSlide metódust a kézjegyzék-master eléréséhez. Ha nincs jelen, hívja a IMasterHandoutSlideManager::SetDefaultMasterHandoutSlide metódust az alapértelmezett kézjegyzék-master létrehozásához.

#include <DOM/IMasterHandoutSlide.h>
#include <DOM/IMasterHandoutSlideHeaderFooterManager.h>
#include <DOM/IMasterHandoutSlideManager.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");
auto masterHandoutSlideManager = presentation->get_MasterHandoutSlideManager();
auto masterHandoutSlide = masterHandoutSlideManager->get_MasterHandoutSlide();

if (masterHandoutSlide == nullptr)
{
    masterHandoutSlide = masterHandoutSlideManager->SetDefaultMasterHandoutSlide();
}

if (masterHandoutSlide != nullptr)
{
    auto headerFooterManager = masterHandoutSlide->get_HeaderFooterManager();

    headerFooterManager->SetHeaderText(u"Handout header");
    headerFooterManager->SetHeaderVisibility(true);

    headerFooterManager->SetFooterText(u"Handout footer");
    headerFooterManager->SetFooterVisibility(true);

    headerFooterManager->SetDateTimeText(u"Date and time text");
    headerFooterManager->SetDateTimeVisibility(true);

    headerFooterManager->SetSlideNumberVisibility(true);
}

presentation->Save(u"presentation_with_handout_footers.pptx", SaveFormat::Pptx);

A hatókör és öröklődés megértése

Válassza ki azt a fejléc/lábléc kezelőt, amely megfelel a módosítani kívánt hatókörnek:

Használja a propagációt egy mester vagy elrendezés esetén, ha ugyanazt a beállítást az egész hierarchiában alkalmazni kell. Használjon egyedi diát vagy jegyzet-dia kezelőt, ha egyetlen oldalhoz helyi beállításra van szükség.

GYIK

Hozzáadhatok fejléct egy normál diához?
Nem. A PowerPoint nem definiál fejléchelyfoglalót a normál diákhoz. Normál diák esetén használja a lábléc, a dátum/idő és a diaszám helyfoglalókat. A fejléchelyfoglalók a jegyzetoldalakon és a kézjegyzékeken érhetők el.

Mi a teendő, ha egy lábléc, dátum/idő vagy diaszám helyfoglaló nem látható?
Használja a megfelelő fejléc/lábléc kezelőt a láthatóság ellenőrzéséhez és engedélyezéshez, ha szükséges. Például a get_IsFooterVisible jelzi, hogy a lábléc helyfoglaló jelen van-e, és a SetFooterVisibility megváltoztatja a láthatóságát.

Hogyan indíthatom a diaszámozást 1‑től eltérő értékkel?
Használja a Presentation::set_FirstSlideNumber metódust az első diaszám beállításához. A diaszám helyfoglalók ezután az új számozási sorozatot használják.

Mi történik a fejlécekkel és láblécekkel PDF‑re, képekre vagy HTML‑re exportáláskor?
A látható fejléc- és lábléc elemek a prezentáció többi tartalmával együtt kerülnek renderelésre a kimeneti formátumban. Megjelenésük attól függ, hogy mely oldaltípust exportálják, és a megfelelő helyfoglaló láthatósági beállításoktól.