Applicare o Modificare i Layout delle Diapositive su Android
Panoramica
Un layout di diapositiva definisce le posizioni e la formattazione dei segnaposto come titoli, testo, immagini, grafici e tabelle. Applicare un layout fornisce alle diapositive una struttura coerente permettendo al contempo a ciascuna diapositiva di contenere il proprio contenuto.
I layout più comuni includono:
- Slide Titolo: Contiene segnaposto per titolo e sottotitolo.
- Titolo e Contenuto: Contiene un segnaposto per il titolo e un segnaposto di contenuto generico.
- Vuoto: Non contiene segnaposti di contenuto ed è utile quando ogni forma verrà posizionata manualmente.
Comprendere l’Ereditarietà dei Layout
Una presentazione ha tre livelli correlati:
- Una master slide definisce il tema, la formattazione condivisa, gli sfondi e gli oggetti comuni.
- Una layout slide appartiene a una master e definisce una disposizione particolare di segnaposto.
- Una normal slide utilizza un layout e memorizza il contenuto inserito per quella diapositiva.
Una diapositiva normale eredita il tema e la formattazione dal suo layout, e il layout eredita dalla sua master. Un valore impostato direttamente su una diapositiva normale sovrascrive il valore ereditato a quel livello. Quando una diapositiva normale viene creata, le sue forme segnaposto sono generate dal layout selezionato, mentre il contenuto inserito in quei segnaposto appartiene alla diapositiva normale.
Aggiungi i segnaposto necessari a un layout prima di creare le diapositive da esso. Aggiungere un altro segnaposto a un layout in seguito non aggiunge automaticamente una forma segnaposto corrispondente alle diapositive normali esistenti.
Questa relazione ha due importanti conseguenze:
- Modificare la formattazione ereditata o la geometria dei segnaposto esistenti su un layout può aggiornare tutte le diapositive che dipendono da esso. Prima di modificare un layout già in uso, esamina le diapositive dipendenti e verifica la presentazione risultante.
- Un layout ancora utilizzato da una diapositiva non può essere rimosso. Riassegna prima le sue diapositive dipendenti a un altro layout, oppure rimuovi solo i layout non utilizzati.
Per ulteriori informazioni sul livello superiore di questa gerarchia, vedere Slide Master.
Selezionare e Applicare un Layout di Diapositiva
Utilizza un tipo di layout quando la presentazione segue le definizioni standard dei layout di PowerPoint. I nomi dei layout sono modificabili dall’utente e possono essere localizzati, quindi la selezione basata sul nome è meno affidabile a meno che tu non controlli il modello di origine.
L’esempio seguente cerca Titolo e Contenuto sulla prima master. Se quel layout non è disponibile, ricade deliberatamente su Vuoto. Il secondo controllo null è necessario perché una presentazione può contenere solo layout personalizzati. Il layout selezionato viene quindi applicato alla prima diapositiva normale tramite il metodo ISlide.setLayoutSlide .
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
IMasterLayoutSlideCollection layoutSlides = presentation.getMasters().get_Item(0).getLayoutSlides();
ILayoutSlide targetLayout = layoutSlides.getByType(SlideLayoutType.TitleAndObject);
if (targetLayout == null) {
targetLayout = layoutSlides.getByType(SlideLayoutType.Blank);
}
if (targetLayout == null) {
throw new IllegalStateException("The first master does not contain a suitable layout slide.");
}
presentation.getSlides().get_Item(0).setLayoutSlide(targetLayout);
presentation.save("output-with-new-layout.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Modificare il layout di una diapositiva non rimuove le forme ordinarie aggiunte direttamente alla diapositiva. Tuttavia, le posizioni dei segnaposto, la formattazione ereditata e la corrispondenza tra i segnaposto esistenti e il nuovo layout possono cambiare, quindi verifica il risultato quando si passa tra layout sostanzialmente diversi.
Aggiungere una Slide di Layout
Selezione e creazione sono operazioni separate. L’esempio precedente seleziona un layout esistente; non ne crea uno. Per creare un layout, chiama il metodo IMasterLayoutSlideCollection.add sulla collezione di layout della master di destinazione.
L’esempio seguente aggiunge sempre un nuovo layout Titolo e Contenuto chiamato Report Title and Content, quindi aggiunge una diapositiva normale basata su di esso. I nomi dei layout devono essere unici all’interno della collezione.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
ILayoutSlide reportLayout = masterSlide.getLayoutSlides().add(SlideLayoutType.TitleAndObject, "Report Title and Content");
presentation.getSlides().addEmptySlide(reportLayout);
presentation.save("output-with-report-layout.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Aggiungi un layout solo quando il modello ha realmente bisogno di un’altra struttura riutilizzabile. Se esiste già un layout adeguato, selezionalo e riutilizzalo invece di creare un duplicato.
Aggiungere Segnaposto a una Slide di Layout
Il metodo ILayoutSlide.getPlaceholderManager fornisce un ILayoutPlaceholderManager per aggiungere forme segnaposto a un layout.
L’esempio seguente verifica che il layout Vuoto esista, aggiunge quattro segnaposto ad esso, e quindi crea una diapositiva normale che utilizza il layout modificato. L’ordine è intenzionale: i segnaposto sono aggiunti prima della creazione della diapositiva normale, così Aspose.Slides può generare le forme segnaposto corrispondenti su quella diapositiva.
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ILayoutSlide blankLayout = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);
if (blankLayout == null) {
throw new IllegalStateException("The presentation does not contain a Blank layout slide.");
}
ILayoutPlaceholderManager placeholderManager = blankLayout.getPlaceholderManager();
placeholderManager.addContentPlaceholder(20, 20, 310, 270);
placeholderManager.addVerticalTextPlaceholder(350, 20, 350, 270);
placeholderManager.addChartPlaceholder(20, 310, 310, 180);
placeholderManager.addTablePlaceholder(350, 310, 350, 180);
presentation.getSlides().addEmptySlide(blankLayout);
presentation.save("output-with-placeholders.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Il risultato:

Warning
Modificare la formattazione ereditata o la geometria dei segnaposto di layout esistenti può influire sulle diapositive dipendenti. Un segnaposto di layout appena aggiunto non viene retrofittato nelle diapositive normali esistenti. Prova le modifiche al layout su una copia della presentazione e ispeziona ogni diapositiva dipendente.Rimuovere le Slide di Layout Non Utilizzate
Utilizza il metodo Compress.removeUnusedLayoutSlides per rimuovere i layout a cui nessuna diapositiva normale fa riferimento. Il metodo lascia intatti i layout ancora in uso.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
Compress.removeUnusedLayoutSlides(presentation);
presentation.save("output-without-unused-layouts.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Per rimuovere un layout specifico, usa prima il suo metodo hasDependingSlides o getDependingSlides. Riassegna le eventuali diapositive dipendenti prima di chiamare ILayoutSlide.remove. Tentare di rimuovere un layout utilizzato genera una PptxEditException.
Controllare la Visibilità del Piè di Pagina su una Slide di Layout
Un layout ha i propri segnaposto per piè di pagina, numero diapositiva e data/ora. Usa il metodo ILayoutSlide.getHeaderFooterManager per controllare quei segnaposto per un singolo layout. Questo è utile, ad esempio, quando i layout di contenuto dovrebbero mostrare i piè di pagina ma i layout di titolo no.
L’esempio seguente seleziona un layout in modo sicuro e rende visibili gli elementi del piè di pagina:
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
ILayoutSlide layoutSlide = presentation.getLayoutSlides().getByType(SlideLayoutType.TitleAndObject);
if (layoutSlide == null) {
layoutSlide = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);
}
if (layoutSlide == null) {
throw new IllegalStateException("The presentation does not contain a suitable layout slide.");
}
ILayoutSlideHeaderFooterManager headerFooterManager = layoutSlide.getHeaderFooterManager();
headerFooterManager.setFooterVisibility(true);
headerFooterManager.setSlideNumberVisibility(true);
headerFooterManager.setDateTimeVisibility(true);
headerFooterManager.setFooterText("Footer text");
headerFooterManager.setDateTimeText("Date and time text");
presentation.save("output-with-layout-footers.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Controllare la Visibilità del Piè di Pagina su una Master e i suoi Layout Figlio
Per applicare impostazioni del piè di pagina coerenti su tutta la gerarchia di una master, usa il metodo IMasterSlide.getHeaderFooterManager. I metodi di propagazione di IMasterSlideHeaderFooterManager operano sulla master e sui suoi layout slide dipendenti e su diapositive normali; non si rivolgono a una sola diapositiva normale.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
IMasterSlideHeaderFooterManager headerFooterManager = presentation.getMasters().get_Item(0).getHeaderFooterManager();
headerFooterManager.setFooterAndChildFootersVisibility(true);
headerFooterManager.setSlideNumberAndChildSlideNumbersVisibility(true);
headerFooterManager.setDateTimeAndChildDateTimesVisibility(true);
headerFooterManager.setFooterAndChildFootersText("Footer text");
headerFooterManager.setDateTimeAndChildDateTimesText("Date and time text");
presentation.save("output-with-master-footers.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
Qual è la Differenza tra una Master Slide e una Layout Slide?
Una master slide definisce il tema della presentazione e la formattazione condivisa. Una layout slide appartiene a una master e definisce una disposizione riutilizzabile di segnaposto. Le diapositive normali utilizzano quei layout e memorizzano il contenuto specifico della diapositiva.
Posso Copiare una Layout Slide da una Presentazione all’Altra?
Sì. Aggiungi una copia alla collezione di destinazione con il metodo addClone. Quando copi tra presentazioni, verifica anche i caratteri, i temi, le immagini e le altre risorse utilizzate dal layout di origine.
Cosa Succede Quando Modifico un Layout Già in Uso?
Le diapositive dipendenti ereditano le modifiche al layout a meno che non sovrascrivano localmente la formattazione o gli oggetti interessati. La geometria dei segnaposto e lo stile ereditato possono quindi cambiare su molte diapositive contemporaneamente. Usa getDependingSlides per identificare le diapositive interessate prima di modificare il layout.
Cosa Succede Se Rimuovo un Layout Ancora in Uso?
Aspose.Slides genera una PptxEditException. Riassegna prima le diapositive dipendenti, oppure usa removeUnusedLayoutSlides per rimuovere solo i layout non referenziati.









