Accedi alle diapositive della presentazione in PHP
Panoramica
Questo articolo spiega come accedere e gestire le diapositive in una presentazione utilizzando Aspose.Slides. Mostra come recuperare le diapositive per indice zero‑based dalla collezione di diapositive e come accedere a una diapositiva per ID univoco utilizzando il metodo getSlideById.
Imparerai anche come modificare la posizione di una diapositiva usando il metodo setSlideNumber e come definire il numero della prima diapositiva di una presentazione con il metodo setFirstSlideNumber. Gli esempi dimostrano il caricamento di una presentazione, l’ottenimento di riferimenti alle diapositive, l’aggiornamento dell’ordine o della numerazione e il salvataggio della presentazione modificata.
Accedi a una diapositiva per indice
Tutte le diapositive di una presentazione sono disposte numericamente in base alla posizione, a partire da 0. La prima diapositiva è accessibile tramite l’indice 0; la seconda diapositiva è accessibile tramite l’indice 1; ecc.
La classe Presentation, che rappresenta un file di presentazione, espone tutte le diapositive come una collezione SlideCollection (collezione di oggetti Slide). Questo codice PHP mostra come accedere a una diapositiva tramite il suo indice:
# Istanzia un oggetto Presentation che rappresenta un file di presentazione
$pres = new Presentation("demo.pptx");
try {
# Accede a una diapositiva usando il suo indice di diapositiva
$slide = $pres->getSlides()->get_Item(0);
} finally {
$pres->dispose();
}
Accedi a una diapositiva per ID
Ogni diapositiva in una presentazione ha un ID univoco associato. È possibile utilizzare il metodo getSlideById (esposto dalla classe Presentation) per mirare a quell’ID. Questo codice PHP mostra come fornire un ID diapositiva valido e accedere a quella diapositiva tramite il metodo getSlideById:
# Istanzia un oggetto Presentation che rappresenta un file di presentazione
$pres = new Presentation("demo.pptx");
try {
# Ottiene un ID diapositiva
$id = $pres->getSlides()->get_Item(0)->getSlideId();
# Accede alla diapositiva tramite il suo ID
$slide = $pres->getSlideById($id);
} finally {
$pres->dispose();
}
Modifica la posizione della diapositiva
Aspose.Slides consente di modificare la posizione di una diapositiva. Ad esempio, è possibile specificare che la prima diapositiva diventi la seconda.
- Crea un’istanza della classe Presentation.
- Ottieni il riferimento alla diapositiva (la cui posizione vuoi cambiare) tramite il suo indice
- Imposta una nuova posizione per la diapositiva tramite il metodo setSlideNumber.
- Salva la presentazione modificata.
Questo codice PHP dimostra un’operazione in cui la diapositiva in posizione 1 viene spostata in posizione 2:
# Istanzia un oggetto Presentation che rappresenta un file di presentazione
$pres = new Presentation("Presentation.pptx");
try {
# Recupera la diapositiva la cui posizione verrà cambiata
$sld = $pres->getSlides()->get_Item(0);
# Imposta la nuova posizione per la diapositiva
$sld->setSlideNumber(2);
# Salva la presentazione modificata
$pres->save("helloworld_Pos.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
La prima diapositiva è diventata la seconda; la seconda diapositiva è diventata la prima. Quando cambi la posizione di una diapositiva, le altre diapositive vengono regolate automaticamente.
Imposta il numero della diapositiva
Utilizzando il metodo setFirstSlideNumber (esposto dalla classe Presentation), è possibile specificare un nuovo numero per la prima diapositiva di una presentazione. Questa operazione fa sì che gli altri numeri di diapositiva vengano ricalcolati.
- Crea un’istanza della classe Presentation.
- Ottieni il numero della diapositiva.
- Imposta il numero della diapositiva.
- Salva la presentazione modificata.
Questo codice PHP dimostra un’operazione in cui il numero della prima diapositiva è impostato a 10:
# Istanzia un oggetto Presentation che rappresenta un file di presentazione
$pres = new Presentation("HelloWorld.pptx");
try {
# Ottiene il numero della diapositiva
$firstSlideNumber = $pres->getFirstSlideNumber();
# Imposta il numero della diapositiva
$pres->setFirstSlideNumber(10);
# Salva la presentazione modificata
$pres->save("Set_Slide_Number_out.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Se preferisci saltare la prima diapositiva, puoi avviare la numerazione dalla seconda diapositiva (e nascondere la numerazione per la prima diapositiva) in questo modo:
$presentation = new Presentation();
try {
$layoutSlide = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);
$presentation->getSlides()->addEmptySlide($layoutSlide);
$presentation->getSlides()->addEmptySlide($layoutSlide);
$presentation->getSlides()->addEmptySlide($layoutSlide);
# Imposta il numero della prima diapositiva della presentazione
$presentation->setFirstSlideNumber(0);
# Mostra i numeri di diapositiva per tutte le diapositive
$presentation->getHeaderFooterManager()->setAllSlideNumbersVisibility(true);
# Nasconde il numero di diapositiva per la prima diapositiva
$presentation->getSlides()->get_Item(0)->getHeaderFooterManager()->setSlideNumberVisibility(false);
# Salva la presentazione modificata
$presentation->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
FAQ
Il numero della diapositiva che l’utente vede corrisponde all’indice zero‑based della collezione?
Il numero mostrato su una diapositiva può iniziare da un valore arbitrario (ad esempio 10) e non deve corrispondere all’indice; la relazione è controllata dall’impostazione first slide number della presentazione.
Le diapositive nascoste influenzano l’indicizzazione?
Sì. Una diapositiva nascosta rimane nella collezione ed è conteggiata nell’indicizzazione; “nascosta” si riferisce alla visualizzazione, non alla sua posizione nella collezione.
L’indice di una diapositiva cambia quando vengono aggiunte o rimosse altre diapositive?
Sì. Gli indici riflettono sempre l’ordine attuale nelle diapositive e vengono ricalcolati al momento di inserimenti, eliminazioni e spostamenti.