Verwalten von Präsentationskopf‑ und Fußzeilen in C++
Übersicht
PowerPoint verwendet je nach Folientyp unterschiedliche Platzhalter für Kopf‑ und Fußzeile. Aspose.Slides für C++ ermöglicht die Steuerung von Text und Sichtbarkeit dieser Platzhalter über die Kopf‑/Fußzeilen‑Manager‑Schnittstellen.
Die verfügbaren Platzhalter hängen vom Geltungsbereich ab:
| Geltungsbereich | Kopfzeile | Fußzeile | Datum/Uhrzeit | Folien‑/Seitennummer |
|---|---|---|---|---|
| Normale Folie | Nein | Ja | Ja | Ja |
| Notizen‑Master | Ja | Ja | Ja | Ja |
| Notizfolie | Ja | Ja | Ja | Ja |
| Handzettel‑Master | Ja | Ja | Ja | Ja |
Eine reguläre Präsentationsfolie besitzt keinen Kopfzeilen‑Platzhalter. Kopfzeilen sind auf Notizseiten und Handzetteln verfügbar. Für normale Folien verwenden Sie stattdessen die Platzhalter für Fußzeile, Datum/Uhrzeit und Foliennummer.
Der Geltungsbereich einer Änderung hängt vom verwendeten Manager ab. Die ISlideHeaderFooterManager‑Schnittstelle steuert eine normale Folie. Die INotesSlideHeaderFooterManager‑Schnittstelle steuert eine Notizfolie. Master‑ und Layout‑Manager können Einstellungen zudem auf abhängige Folien übertragen, während die IMasterHandoutSlideHeaderFooterManager‑Schnittstelle den Handzettel‑Master steuert.
Fußzeile, Datum/Uhrzeit und Foliennummern auf normalen Folien festlegen
Für normale Folien besteht der typische Ablauf darin, den jeweiligen Folien‑Header/Footer‑Manager zu öffnen, den Fußzeilen‑ und Datum/Uhrzeit‑Text zu setzen, die benötigten Platzhalter zu aktivieren und die Präsentation zu speichern. Foliennummern werden von der Präsentation generiert, daher muss nur deren Sichtbarkeit gesteuert werden.
Verwenden Sie SetFooterText und SetDateTimeText, um den Text zu setzen, und SetFooterVisibility, SetDateTimeVisibility sowie SetSlideNumberVisibility, um die jeweiligen Platzhalter sichtbar zu machen.
Das folgende End‑zu‑Ende‑Beispiel wendet dieselbe Fußzeile, denselben Datum/Uhrzeit‑Text und dieselbe Folien‑Nummer‑Sichtbarkeit auf alle normalen Folien an:
#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);
Falls Sie nur eine Folie aktualisieren möchten, greifen Sie direkt über Presentation::get_Slide auf diese Folie zu, anstatt die gesamte Folien‑Sammlung zu durchlaufen.
Kopf‑ und Fußzeilen im Notizen‑Master festlegen
Der Notizen‑Master definiert einheitliche Formatierung und Platzhalter‑Verhalten für Notizseiten. Verwenden Sie die IMasterNotesSlideHeaderFooterManager‑Schnittstelle, wenn Sie ausschließlich den Notizen‑Master ändern möchten.
Das folgende Beispiel setzt Kopf‑, Fußzeilen‑ und Datum/Uhrzeit‑Text im Notizen‑Master und macht alle unterstützten Platzhalter auf diesem Master sichtbar:
#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);
Die Methode IMasterNotesSlideManager::get_MasterNotesSlide liefert nullptr, wenn die Präsentation keinen Notizen‑Master enthält.
Notizen‑Master‑Einstellungen auf untergeordnete Notizfolien anwenden
Ein Notizen‑Master kann Kopf‑ und Fußzeileneinstellungen sowohl auf sich selbst als auch auf alle abhängigen Notizfolien übertragen. Verwenden Sie die dafür vorgesehenen Propagations‑Methoden der IMasterNotesSlideHeaderFooterManager, wenn dieselben Einstellungen über die gesamte Notiz‑Hierarchie hinweg gelten sollen.
Beispielsweise aktualisieren SetHeaderAndChildHeadersText und SetHeaderAndChildHeadersVisibility die Kopfzeile des Notizen‑Masters und aller untergeordneten Kopfzeilen. Entsprechende Methoden stehen für Fußzeilen, Datum/Uhrzeit und Foliennummern bereit.
#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);
Die oben genannten Propagations‑Methoden sind SetFooterAndChildFootersText, SetFooterAndChildFootersVisibility, SetDateTimeAndChildDateTimesText, SetDateTimeAndChildDateTimesVisibility sowie SetSlideNumberAndChildSlideNumbersVisibility.
Kopf‑ und Fußzeilen auf einer einzelnen Notizfolie festlegen
Eine Notizfolie ist einer bestimmten regulären Folie zugeordnet. Verwenden Sie deren INotesSlideHeaderFooterManager‑Schnittstelle, wenn Sie ausschließlich diese Notizseite anpassen möchten.
Die Methode INotesSlideManager::AddNotesSlide liefert die Notizfolie zur aktuellen Folie und erstellt sie, falls sie noch nicht existiert. Das folgende Beispiel konfiguriert die Notizseite, die mit der ersten Präsentationsfolie verknüpft ist:
#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);
Wenn Sie zuerst Einstellungen vom Notizen‑Master propagieren und anschließend eine einzelne Notizfolie ändern, ermöglichen die nachträglichen Folien‑spezifischen Einstellungen eine unabhängige Anpassung dieser Notizseite.
Kopf‑ und Fußzeilen im Handzettel‑Master festlegen
Handzettel‑Seiten verwenden den Handzettel‑Master für ihre Kopf‑, Fußzeilen‑, Datum/Uhrzeit‑ und Seiten‑Nummer‑Platzhalter. Im Gegensatz zu Notizseiten werden Handzettel‑Einstellungen über den Handzettel‑Master verwaltet, nicht über einzelne Handzettel‑Folien.
Verwenden Sie IMasterHandoutSlideManager::get_MasterHandoutSlide, um auf den Handzettel‑Master zuzugreifen. Falls er nicht vorhanden ist, rufen Sie IMasterHandoutSlideManager::SetDefaultMasterHandoutSlide auf, um den Standard‑Handzettel‑Master zu erzeugen.
#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);
Geltungsbereich und Vererbung verstehen
Wählen Sie den Header/Footer‑Manager, der dem gewünschten Geltungsbereich entspricht:
ISlideHeaderFooterManagerändert Fußzeile, Datum/Uhrzeit und Folien‑Nummer‑Einstellungen für eine normale Folie.ILayoutSlideHeaderFooterManagersteuert eine Layout‑Folie und kann unterstützte Einstellungen auf abhängige Folien übertragen.IMasterSlideHeaderFooterManagersteuert einen regulären Folien‑Master und kann unterstützte Einstellungen auf abhängige Folien übertragen.IMasterNotesSlideHeaderFooterManagersteuert den Notizen‑Master und kann Einstellungen auf alle abhängigen Notizfolien übertragen.INotesSlideHeaderFooterManagerändert eine Notizfolie und unterstützt neben Fußzeile und Datum/Uhrzeit auch einen Kopfzeilen‑Platzhalter.IMasterHandoutSlideHeaderFooterManagerändert den Handzettel‑Master und unterstützt alle vier Platzhalter‑Typen.
Verwenden Sie die Propagation von einem Master‑ oder Layout‑Manager, wenn dieselbe Einstellung in der gesamten Hierarchie gelten soll. Nutzen Sie einen einzelnen Folien‑ bzw. Notiz‑Slide‑Manager, wenn eine lokale Einstellung nur für eine Seite erforderlich ist.
FAQ
Kann ich einer normalen Folie eine Kopfzeile hinzufügen?
Nein. PowerPoint definiert keinen Kopfzeilen‑Platzhalter für normale Folien. Auf normalen Folien verwenden Sie die Platzhalter für Fußzeile, Datum/Uhrzeit und Folien‑Nummer. Kopfzeilen‑Platzhalter stehen nur auf Notizseiten und Handzetteln zur Verfügung.
Was tun, wenn ein Fußzeilen‑, Datum/Uhrzeit‑ oder Folien‑Nummer‑Platzhalter nicht sichtbar ist?
Verwenden Sie den entsprechenden Header/Footer‑Manager, um die Sichtbarkeit zu prüfen und bei Bedarf zu aktivieren. Zum Beispiel gibt get_IsFooterVisible an, ob ein Fußzeilen‑Platzhalter vorhanden ist, und SetFooterVisibility ändert seine Sichtbarkeit.
Wie starte ich die Folien‑Nummerierung ab einem anderen Wert als 1?
Verwenden Sie Presentation::set_FirstSlideNumber, um die erste Folien‑Nummer festzulegen. Die Folien‑Nummer‑Platzhalter verwenden dann die aktualisierte Numerierungs‑Sequenz.
Was passiert mit Kopf‑ und Fußzeilen beim Exportieren nach PDF, Bildern oder HTML?
Sichtbare Kopf‑ und Fußzeilen‑Elemente werden zusammen mit dem restlichen Präsentationsinhalt im Ausgabemedium gerendert. Ihr Aussehen hängt vom zu exportierenden Seitentyp und den jeweiligen Platzhalter‑Sichtbarkeitseinstellungen ab.