Accedi alle diapositive della presentazione in .NET
Panoramica
Questo articolo spiega come accedere e gestire le diapositive in una presentazione utilizzando Aspose.Slides. Mostra come recuperare le diapositive tramite il loro indice basato su zero dalla raccolta Slides e come accedere a una diapositiva mediante il suo ID univoco usando il metodo GetSlideById.
Imparerai inoltre come modificare la posizione di una diapositiva impostando la proprietà SlideNumber e come definire il numero di diapositiva iniziale per una presentazione con la proprietà FirstSlideNumber. Gli esempi mostrano come caricare una presentazione, ottenere riferimenti alle diapositive, aggiornare l’ordine o la numerazione delle diapositive e salvare la presentazione modificata.
Accedi a una diapositiva per indice
Tutte le diapositive in una presentazione sono organizzate numericamente in base alla posizione della diapositiva 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 ISlideCollection (collezione di oggetti ISlide). Questo codice C# mostra come accedere a una diapositiva tramite il suo indice:
// Istanzia un oggetto Presentation che rappresenta un file di presentazione
Presentation presentation = new Presentation("AccessSlides.pptx");
// Ottiene il riferimento a una diapositiva tramite il suo indice
ISlide slide = presentation.Slides[0];
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 puntare a quell’ID. Questo codice C# 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
Presentation presentation = new Presentation("AccessSlides.pptx");
// Ottiene l'ID di una diapositiva
uint id = presentation.Slides[0].SlideId;
// Accede alla diapositiva tramite il suo ID
IBaseSlide slide = presentation.GetSlideById(id);
Modifica posizione diapositiva
Aspose.Slides consente di modificare la posizione di una diapositiva. Ad esempio, è possibile specificare che la prima diapositiva diventi la seconda diapositiva.
- Crea un’istanza della classe Presentation.
- Ottieni il riferimento alla diapositiva (la cui posizione vuoi modificare) tramite il suo indice
- Imposta una nuova posizione per la diapositiva tramite la proprietà SlideNumber.
- Salva la presentazione modificata.
Questo codice C# dimostra un’operazione in cui la diapositiva nella posizione 1 viene spostata nella posizione 2:
// Istanzia un oggetto Presentation che rappresenta un file di presentazione
using (Presentation pres = new Presentation("ChangePosition.pptx"))
{
// Ottiene la diapositiva la cui posizione verrà modificata
ISlide sld = pres.Slides[0];
// Imposta la nuova posizione per la diapositiva
sld.SlideNumber = 2;
// Salva la presentazione modificata
pres.Save("Aspose_out.pptx", SaveFormat.Pptx);
}
La prima diapositiva è diventata la seconda; la seconda diapositiva è diventata la prima. Quando si modifica la posizione di una diapositiva, le altre diapositive vengono automaticamente regolate.
Imposta il numero diapositiva
Utilizzando la proprietà FirstSlideNumber (esposta 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 C# dimostra un’operazione in cui il numero della prima diapositiva è impostato a 10:
// Istanzia un oggetto Presentation che rappresenta un file di presentazione
using (Presentation presentation = new Presentation("HelloWorld.pptx"))
{
// Ottiene il numero della diapositiva
int firstSlideNumber = presentation.FirstSlideNumber;
// Imposta il numero della diapositiva
presentation.FirstSlideNumber=10;
// Salva la presentazione modificata
presentation.Save("Set_Slide_Number_out.pptx", SaveFormat.Pptx);
}
Se preferisci saltare la prima diapositiva, puoi avviare la numerazione dalla seconda diapositiva (nascostando la numerazione per la prima diapositiva) in questo modo:
using (var presentation = new Presentation())
{
var layoutSlide = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);
presentation.Slides.AddEmptySlide(layoutSlide);
presentation.Slides.AddEmptySlide(layoutSlide);
presentation.Slides.AddEmptySlide(layoutSlide);
// Imposta il numero per la prima diapositiva della presentazione
presentation.FirstSlideNumber = 0;
// Mostra i numeri delle diapositive per tutte le diapositive
presentation.HeaderFooterManager.SetAllSlideNumbersVisibility(true);
// Nasconde il numero della diapositiva per la prima diapositiva
presentation.Slides[0].HeaderFooterManager.SetSlideNumberVisibility(false);
// Salva la presentazione modificata
presentation.Save("output.pptx", SaveFormat.Pptx);
}
FAQ
Il numero della diapositiva visualizzato dall’utente corrisponde all’indice basato su zero della collezione?
Il numero mostrato su una diapositiva può iniziare da un valore arbitrario (ad es., 10) e non deve corrispondere all’indice; la relazione è controllata dall’impostazione primo numero di diapositiva della presentazione.
Le diapositive nascoste influiscono sull’indicizzazione?
Sì. Una diapositiva nascosta rimane nella collezione e viene 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 corrente delle diapositive e vengono ricalcolati in caso di operazioni di inserimento, cancellazione o spostamento.