Dostęp do slajdów prezentacji w PHP
Przegląd
Ten artykuł wyjaśnia, jak uzyskać dostęp i zarządzać slajdami w prezentacji przy użyciu Aspose.Slides. Pokazuje, jak pobrać slajdy według ich zerowego indeksu z kolekcji slajdów oraz jak uzyskać dostęp do slajdu po jego unikalnym identyfikatorze przy użyciu metody getSlideById.
Nauczysz się również, jak zmienić pozycję slajdu przy użyciu metody setSlideNumber oraz jak określić początkowy numer slajdu w prezentacji za pomocą metody setFirstSlideNumber. Przykłady demonstrują ładowanie prezentacji, uzyskiwanie odwołań do slajdów, aktualizację kolejności lub numeracji slajdów oraz zapisywanie zmodyfikowanej prezentacji.
Dostęp do slajdu według indeksu
Wszystkie slajdy w prezentacji są uporządkowane numerycznie wg pozycji slajdu, zaczynając od 0. Pierwszy slajd jest dostępny pod indeksem 0; drugi slajd pod indeksem 1; itd.
Klasa Presentation, reprezentująca plik prezentacji, udostępnia wszystkie slajdy jako kolekcję SlideCollection (kolekcję obiektów Slide). Ten kod PHP pokazuje, jak uzyskać dostęp do slajdu przez jego indeks:
# Instancjonuje obiekt Presentation, który reprezentuje plik prezentacji
$pres = new Presentation("demo.pptx");
try {
# Pobiera slajd za pomocą jego indeksu
$slide = $pres->getSlides()->get_Item(0);
} finally {
$pres->dispose();
}
Dostęp do slajdu według ID
Każdy slajd w prezentacji ma przypisany unikalny identyfikator. Możesz użyć metody getSlideById (udostępnionej przez klasę Presentation), aby odwołać się do tego ID. Ten kod PHP pokazuje, jak podać prawidłowy identyfikator slajdu i uzyskać dostęp do tego slajdu przez metodę getSlideById:
# Tworzy obiekt Presentation, który reprezentuje plik prezentacji
$pres = new Presentation("demo.pptx");
try {
# Pobiera identyfikator slajdu
$id = $pres->getSlides()->get_Item(0)->getSlideId();
# Uzyskuje dostęp do slajdu za pomocą jego identyfikatora
$slide = $pres->getSlideById($id);
} finally {
$pres->dispose();
}
Zmiana pozycji slajdu
Aspose.Slides pozwala zmienić pozycję slajdu. Na przykład możesz określić, że pierwszy slajd ma stać się drugim slajdem.
- Utwórz instancję klasy Presentation.
- Pobierz referencję slajdu (którego pozycję chcesz zmienić) poprzez jego indeks.
- Ustaw nową pozycję slajdu przy pomocy metody setSlideNumber.
- Zapisz zmodyfikowaną prezentację.
Ten kod PHP demonstruje operację, w której slajd o pozycji 1 jest przenoszony na pozycję 2:
# Tworzy obiekt Presentation, który reprezentuje plik prezentacji
$pres = new Presentation("Presentation.pptx");
try {
# Pobiera slajd, którego pozycja zostanie zmieniona
$sld = $pres->getSlides()->get_Item(0);
# Ustawia nową pozycję slajdu
$sld->setSlideNumber(2);
# Zapisuje zmodyfikowaną prezentację
$pres->save("helloworld_Pos.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Pierwszy slajd stał się drugim; drugi slajd stał się pierwszym. Gdy zmieniasz pozycję slajdu, pozostałe slajdy są automatycznie dostosowywane.
Ustaw numer slajdu
Używając metody setFirstSlideNumber (udostępnionej przez klasę Presentation), możesz określić nowy numer pierwszego slajdu w prezentacji. Operacja ta powoduje przeliczenie numerów pozostałych slajdów.
- Utwórz instancję klasy Presentation.
- Pobierz numer slajdu.
- Ustaw numer slajdu.
- Zapisz zmodyfikowaną prezentację.
Ten kod PHP demonstruje operację, w której numer pierwszego slajdu jest ustawiony na 10:
# Tworzy obiekt Presentation, który reprezentuje plik prezentacji
$pres = new Presentation("HelloWorld.pptx");
try {
# Pobiera numer slajdu
$firstSlideNumber = $pres->getFirstSlideNumber();
# Ustawia numer slajdu
$pres->setFirstSlideNumber(10);
# Zapisuje zmodyfikowaną prezentację
$pres->save("Set_Slide_Number_out.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Jeśli chcesz pominąć pierwszy slajd, możesz rozpocząć numerację od drugiego slajdu (i ukryć numerację dla pierwszego slajdu) w następujący sposób:
$presentation = new Presentation();
try {
$layoutSlide = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);
$presentation->getSlides()->addEmptySlide($layoutSlide);
$presentation->getSlides()->addEmptySlide($layoutSlide);
$presentation->getSlides()->addEmptySlide($layoutSlide);
# Ustawia numer pierwszego slajdu w prezentacji
$presentation->setFirstSlideNumber(0);
# Wyświetla numery slajdów dla wszystkich slajdów
$presentation->getHeaderFooterManager()->setAllSlideNumbersVisibility(true);
# Ukrywa numer slajdu dla pierwszego slajdu
$presentation->getSlides()->get_Item(0)->getHeaderFooterManager()->setSlideNumberVisibility(false);
# Zapisuje zmodyfikowaną prezentację
$presentation->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
FAQ
Czy numer slajdu wyświetlany użytkownikowi odpowiada zerowemu indeksowi w kolekcji?
Numer wyświetlany na slajdzie może zaczynać się od dowolnej wartości (np. 10) i nie musi odpowiadać indeksowi; zależność jest kontrolowana przez ustawienie first slide number w prezentacji.
Czy ukryte slajdy wpływają na indeksowanie?
Tak. Ukryty slajd pozostaje w kolekcji i jest liczony przy indeksowaniu; „ukryty” odnosi się do wyświetlania, a nie do jego pozycji w kolekcji.
Czy indeks slajdu zmienia się, gdy dodane lub usunięte zostaną inne slajdy?
Tak. Indeksy zawsze odzwierciedlają bieżącą kolejność w kolekcji slajdów i są przeliczane po operacjach wstawiania, usuwania i przenoszenia.