Zugriff auf Folien in der Präsentation

Aspose.Slides ermöglicht den Zugriff auf Folien auf zwei Arten: nach Index und nach ID.

Zugriff auf Folie nach Index

Alle Folien in einer Präsentation sind numerisch basierend auf der Folienposition angeordnet, beginnend bei 0. Die erste Folie ist über den Index 0 zugänglich; die zweite Folie wird über den Index 1 aufgerufen; usw.

Die Presentation-Klasse, die eine Präsentationsdatei repräsentiert, stellt alle Folien als ISlideCollection Sammlung (Sammlung von ISlide Objekten) bereit. Dieser C++-Code zeigt Ihnen, wie Sie auf eine Folie über ihren Index zugreifen können:

	// Der Pfad zum Dokumentenverzeichnis.
	const String templatePath = u"../templates/AddSlides.pptx";

	// Instanziiert die Presentation-Klasse
	SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

	// Erhält eine Referenz auf eine Folie über ihren Index
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

Zugriff auf Folie nach ID

Jede Folie in einer Präsentation hat eine eindeutige ID, die ihr zugeordnet ist. Sie können die GetSlideById() Methode (bereitgestellt von der Presentation Klasse) verwenden, um diese ID anzusprechen. Dieser C++-Code zeigt Ihnen, wie Sie eine gültige Folien-ID bereitstellen und auf diese Folie über die GetSlideById() Methode zugreifen:

	// Der Pfad zum Dokumentenverzeichnis.
	const String templatePath = u"../templates/AddSlides.pptx";

	// Instanziiert die Presentation-Klasse
	SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

	// Erhält eine Folien-ID
	int id = pres->get_Slides()->idx_get(0)->get_SlideId();

	// Greift auf die Folie über ihre ID zu
	SharedPtr<IBaseSlide> slide = pres->GetSlideById(id);

Folienposition ändern

Aspose.Slides ermöglicht es Ihnen, die Folienposition zu ändern. Zum Beispiel können Sie angeben, dass die erste Folie die zweite Folie werden soll.

  1. Erstellen Sie eine Instanz der Presentation Klasse.
  2. Holen Sie sich die Referenz der Folie (deren Position Sie ändern möchten) über ihren Index.
  3. Setzen Sie eine neue Position für die Folie über die set_SlideNumber() Eigenschaft.
  4. Speichern Sie die modifizierte Präsentation.

Dieser C++-Code demonstriert eine Operation, in der die Folie in Position 1 auf Position 2 verschoben wird:

	// Der Pfad zum Dokumentenverzeichnis.
	const String templatePath = u"../templates/AddSlides.pptx";
	const String outPath = u"../out/ChangeSlidePosition.pptx";

	// Instanziiert die Presentation-Klasse
	SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

	// Erhält die Folie, deren Position geändert wird
	SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);

	// Setzt die neue Position für die Folie
	slide->set_SlideNumber(2);

	// Speichert die modifizierte Präsentation
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Die erste Folie wurde zur zweiten; die zweite Folie wurde zur ersten. Wenn Sie die Position einer Folie ändern, werden andere Folien automatisch angepasst.

Foliennummer festlegen

Mit der set_FirstSlideNumber() Eigenschaft (bereitgestellt von der Presentation Klasse) können Sie eine neue Nummer für die erste Folie in einer Präsentation angeben. Diese Operation führt dazu, dass andere Foliennummern neu berechnet werden.

  1. Erstellen Sie eine Instanz der Presentation Klasse.
  2. Holen Sie sich die Foliennummer.
  3. Setzen Sie die Foliennummer.
  4. Speichern Sie die modifizierte Präsentation.

Dieser C++-Code demonstriert eine Operation, bei der die erste Foliennummer auf 10 gesetzt wird:

	// Der Pfad zum Dokumentenverzeichnis.
	const String outPath = u"../out/SetSlideNumber_out.pptx";
	const String templatePath = u"../templates/AccessSlides.pptx";

	//Instanziiert die Presentation-Klasse
	SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);

	// Erhält die Foliennummer
	int firstSlideNumber = pres->get_FirstSlideNumber();

	// Setzt die Foliennummer
	pres->set_FirstSlideNumber(2);
	
	// Speichert die modifizierte Präsentation
	pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);

Wenn Sie die erste Folie überspringen möchten, können Sie die Nummerierung von der zweiten Folie aus starten (und die Nummerierung für die erste Folie ausblenden), so:

auto presentation = System::MakeObject<Presentation>();

auto layoutSlide = presentation->get_LayoutSlides()->GetByType(SlideLayoutType::Blank);

auto slides = presentation->get_Slides();
slides->AddEmptySlide(layoutSlide);
slides->AddEmptySlide(layoutSlide);
slides->AddEmptySlide(layoutSlide);

// Setzt die Nummer für die erste Präsentationsfolie
presentation->set_FirstSlideNumber(0);

// Zeigt die Foliennummern für alle Folien an
presentation->get_HeaderFooterManager()->SetAllSlideNumbersVisibility(true);

// Blendet die Foliennummer für die erste Folie aus
slides->idx_get(0)->get_HeaderFooterManager()->SetSlideNumberVisibility(false);

// Speichert die modifizierte Präsentation
presentation->Save(u"output.pptx", SaveFormat::Pptx);