Zugriff auf Präsentationsfolien in PHP
Aspose.Slides ermöglicht den Zugriff auf Folien auf zwei Arten: über den Index und über die ID.
Zugriff auf eine Folie per Index
Alle Folien in einer Präsentation sind numerisch nach 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 Klasse Presentation, die eine Präsentationsdatei repräsentiert, stellt alle Folien als eine SlideCollection-Sammlung (Sammlung von Slide-Objekten) bereit. Dieser PHP-Code zeigt, wie man über den Index auf eine Folie zugreift:
# Instanziiert ein Presentation-Objekt, das eine Präsentationsdatei darstellt
$pres = new Presentation("demo.pptx");
try {
# Greift auf eine Folie über ihren Folienindex zu
$slide = $pres->getSlides()->get_Item(0);
} finally {
$pres->dispose();
}
Zugriff auf eine Folie per ID
Jede Folie in einer Präsentation hat eine eindeutige ID. Sie können die Methode getSlideById (bereitgestellt von der Klasse Presentation) verwenden, um diese ID anzusprechen. Dieser PHP-Code zeigt, wie man eine gültige Folien-ID angibt und über die Methode getSlideById auf die Folie zugreift:
# Instanziiert ein Presentation-Objekt, das eine Präsentationsdatei darstellt
$pres = new Presentation("demo.pptx");
try {
# Holt eine Folien-ID
$id = $pres->getSlides()->get_Item(0)->getSlideId();
# Greift auf die Folie über ihre ID zu
$slide = $pres->getSlideById($id);
} finally {
$pres->dispose();
}
Ändern der Folienposition
Aspose.Slides ermöglicht es, die Position einer Folie zu ändern. Zum Beispiel können Sie festlegen, dass die erste Folie zur zweiten Folie wird.
- Erstellen Sie eine Instanz der Presentation-Klasse.
- Holen Sie die Referenz der Folie (deren Position Sie ändern möchten) über ihren Index.
- Setzen Sie eine neue Position für die Folie über die Methode setSlideNumber.
- Speichern Sie die geänderte Präsentation.
Dieser PHP-Code demonstriert eine Operation, bei der die Folie an Position 1 nach Position 2 verschoben wird:
# Instanziiert ein Presentation-Objekt, das eine Präsentationsdatei darstellt
$pres = new Presentation("Presentation.pptx");
try {
# Holt die Folie, deren Position geändert wird
$sld = $pres->getSlides()->get_Item(0);
# Setzt die neue Position für die Folie
$sld->setSlideNumber(2);
# Speichert die geänderte Präsentation
$pres->save("helloworld_Pos.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Die erste Folie wurde zur zweiten; die zweite Folie wurde zur ersten. Wenn Sie die Position einer Folie ändern, werden die anderen Folien automatisch angepasst.
Festlegen der Foliennummer
Mit der Methode setFirstSlideNumber (bereitgestellt von der Klasse Presentation) können Sie eine neue Nummer für die erste Folie einer Präsentation festlegen. Dieser Vorgang führt dazu, dass die übrigen Foliennummern neu berechnet werden.
- Erstellen Sie eine Instanz der Presentation-Klasse.
- Holen Sie die Foliennummer.
- Setzen Sie die Foliennummer.
- Speichern Sie die geänderte Präsentation.
Dieser PHP-Code demonstriert eine Operation, bei der die erste Foliennummer auf 10 gesetzt wird:
# Instanziiert ein Presentation-Objekt, das eine Präsentationsdatei darstellt
$pres = new Presentation("HelloWorld.pptx");
try {
# Ermittelt die Foliennummer
$firstSlideNumber = $pres->getFirstSlideNumber();
# Setzt die Foliennummer
$pres->setFirstSlideNumber(10);
# Speichert die geänderte Präsentation
$pres->save("Set_Slide_Number_out.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Falls Sie die erste Folie überspringen möchten, können Sie die Nummerierung ab der zweiten Folie beginnen (und die Nummerierung für die erste Folie ausblenden) auf folgende Weise:
$presentation = new Presentation();
try {
$layoutSlide = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);
$presentation->getSlides()->addEmptySlide($layoutSlide);
$presentation->getSlides()->addEmptySlide($layoutSlide);
$presentation->getSlides()->addEmptySlide($layoutSlide);
# Setzt die Nummer für die erste Präsentationsfolie
$presentation->setFirstSlideNumber(0);
# Zeigt die Foliennummern für alle Folien an
$presentation->getHeaderFooterManager()->setAllSlideNumbersVisibility(true);
# Blendet die Foliennummer für die erste Folie aus
$presentation->getSlides()->get_Item(0)->getHeaderFooterManager()->setSlideNumberVisibility(false);
# Speichert die geänderte Präsentation
$presentation->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
FAQ
Entspricht die von einem Benutzer sichtbare Foliennummer dem nullbasierten Index der Sammlung?
Die auf einer Folie angezeigte Nummer kann mit einem beliebigen Wert beginnen (z. B. 10) und muss nicht mit dem Index übereinstimmen; die Beziehung wird durch die Einstellung der first slide number der Präsentation gesteuert.
Beeinflussen ausgeblendete Folien die Indexierung?
Ja. Eine ausgeblendete Folie bleibt in der Sammlung und wird bei der Indexierung mitgezählt; „ausgeblendet“ bezieht sich auf die Anzeige, nicht auf ihre Position in der Sammlung.
Ändert sich der Index einer Folie, wenn andere Folien hinzugefügt oder entfernt werden?
Ja. Indizes spiegeln stets die aktuelle Reihenfolge der Folien wider und werden bei Einfüge-, Lösch- und Verschiebevorgängen neu berechnet.