Toepassen of wijzigen van slide‑layouts op Android
Overzicht
Een slide‑layout definieert de posities en opmaak van plaatsaanduidingen zoals titels, tekst, afbeeldingen, diagrammen en tabellen. Het toepassen van een layout geeft dia’s een consistente structuur terwijl elke dia zijn eigen inhoud kan bevatten.
De meest voorkomende layouts zijn:
- Titel-dia: Bevat plaatsaanduidingen voor titel en ondertitel.
- Titel en inhoud: Bevat een titelplaatsaanduiding en een algemene inhoudsplaatsaanduiding.
- Leeg: Bevat geen inhoudsplaatsaanduidingen en is nuttig wanneer elke vorm handmatig wordt geplaatst.
Begrijp layout‑erfenis
Een presentatie kent drie gerelateerde niveaus:
- Een masterdia definieert het thema, gedeelde opmaak, achtergronden en gemeenschappelijke objecten.
- Een layoutdia behoort tot een master en bepaalt een specifieke rangschikking van plaatsaanduidingen.
- Een normale dia gebruikt één layout en slaat de ingevoerde inhoud voor die dia op.
Een normale dia erft thema en opmaak van zijn layout, en de layout erft van zijn master. Een waarde die direct op een normale dia wordt ingesteld, overschrijft de geërfde waarde op dat niveau. Wanneer een normale dia wordt aangemaakt, worden de plaatsaanduidingsvormen gegenereerd uit de gekozen layout, terwijl de ingevoerde inhoud in die plaatsaanduidingen tot de normale dia behoort.
Voeg verplichte plaatsaanduidingen toe aan een layout voordat je dia’s ervan maakt. Een later toegevoegde plaatsaanduiding aan een layout wordt niet automatisch toegevoegd aan bestaande normale dia’s.
Deze relatie heeft twee belangrijke consequenties:
- Het wijzigen van geërfde opmaak of bestaande plaatsaanduidingsgeometrie op een layout kan elke dia die ervan afhankelijk is updaten. Inspecteer vóór het bewerken van een reeds in gebruik zijnde layout de afhankelijke dia’s en bekijk de resulterende presentatie.
- Een layout die nog door een dia wordt gebruikt, kan niet worden verwijderd. Wijs eerst de afhankelijke dia’s opnieuw toe aan een andere layout, of verwijder alleen ongebruikte layouts.
Voor meer informatie over het bovenste niveau van deze hiërarchie, zie Slide Master.
Selecteer en pas een slide‑layout toe
Gebruik een layouttype wanneer de presentatie standaard PowerPoint‑layoutdefinities volgt. Layoutnamen zijn bewerkbaar door de gebruiker en kunnen worden gelokaliseerd, waardoor naamgebaseerde selectie minder betrouwbaar is tenzij je de bron‑template beheert.
Het volgende voorbeeld zoekt Titel en inhoud op de eerste master. Als die layout niet beschikbaar is, valt het bewust terug op Leeg. De tweede null‑check is nodig omdat een presentatie uitsluitend aangepaste layouts kan bevatten. De gekozen layout wordt vervolgens toegepast op de eerste normale dia via de ISlide.setLayoutSlide methode.
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();
}
Het wijzigen van de layout van een dia verwijdert niet de gewone vormen die rechtstreeks aan de dia zijn toegevoegd. Plaatsaanduidingsposities, geërfde opmaak en de correspondentie tussen bestaande plaatsaanduidingen en de nieuwe layout kunnen echter veranderen, dus inspecteer de output bij het overschakelen tussen aanzienlijk verschillende layouts.
Voeg een layoutdia toe
Selectie en creatie zijn aparte handelingen. Het vorige voorbeeld selecteert een bestaande layout; het maakt er geen nieuwe aan. Om een layout te maken, roep je de IMasterLayoutSlideCollection.add methode aan op de layout‑collectie van de doel‑master.
Het volgende voorbeeld voegt altijd een nieuwe Titel en inhoud layout toe met de naam Report Title and Content, en voegt vervolgens een normale dia toe die daarop gebaseerd is. Layoutnamen moeten uniek zijn binnen de collectie.
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();
}
Voeg alleen een layout toe wanneer de template werkelijk een extra herbruikbare structuur nodig heeft. Als er al een geschikte layout bestaat, selecteer en hergebruik die in plaats van een duplicaat te maken.
Voeg plaatsaanduidingen toe aan een layoutdia
De ILayoutSlide.getPlaceholderManager methode levert een ILayoutPlaceholderManager voor het toevoegen van plaatsaanduidingsvormen aan een layout.
Het volgende voorbeeld controleert of de Leeg layout bestaat, voegt vier plaatsaanduidingen toe en maakt daarna een normale dia die de aangepaste layout gebruikt. De volgorde is opzettelijk: de plaatsaanduidingen worden toegevoegd vóór het aanmaken van de normale dia, zodat Aspose.Slides de overeenkomende plaatsaanduidingsvormen op die dia kan genereren.
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();
}
Het resultaat:

Warning
Het wijzigen van geërfde opmaak of de geometrie van bestaande layout‑plaatsaanduidingen kan afhankelijke dia’s beïnvloeden. Een nieuw toegevoegde layout‑plaatsaanduiding wordt niet achteraf ingevoegd in bestaande normale dia’s. Test layout‑wijzigingen op een kopie van de presentatie en inspecteer elke afhankelijke dia.Verwijder ongebruikte layoutdia’s
Gebruik de Compress.removeUnusedLayoutSlides methode om layouts te verwijderen die door geen enkele normale dia worden gerefereerd. De methode laat layouts die nog in gebruik zijn ongewijzigd.
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();
}
Om één specifieke layout te verwijderen, gebruik eerst de hasDependingSlides of getDependingSlides methode. Wijs eventuele afhankelijke dia’s opnieuw toe voordat je ILayoutSlide.remove aanroept. Het proberen te verwijderen van een gebruikte layout veroorzaakt een PptxEditException.
Regel voettekst‑zichtbaarheid op een layoutdia
Een layout heeft zijn eigen voettekst‑, dia‑nummer‑ en datum‑tijd‑plaatsaanduidingen. Gebruik de ILayoutSlide.getHeaderFooterManager methode om die plaatsaanduidingen voor één layout te beheren. Dit is handig wanneer, bijvoorbeeld, inhoud‑layouts voetteksten moeten tonen maar titel‑layouts niet.
Het volgende voorbeeld selecteert een layout veilig en maakt de voettekstelementen zichtbaar:
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();
}
Regel voettekst‑zichtbaarheid op een master en diens onderliggende layouts
Om consistente voettekstinstellingen door de hele master‑hiërarchie toe te passen, gebruik je de IMasterSlide.getHeaderFooterManager methode. De propagatiemethoden van IMasterSlideHeaderFooterManager werken op de master, diens afhankelijke layoutdia’s en normale dia’s; ze richten zich niet alleen op één normale dia.
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
Wat is het verschil tussen een masterdia en een layoutdia?
Een masterdia definieert het thema en de gedeelde opmaak van de presentatie. Een layoutdia behoort tot een master en bepaalt één herbruikbare rangschikking van plaatsaanduidingen. Normale dia’s gebruiken die layouts en slaan dia‑specifieke inhoud op.
Kan ik een layoutdia van de ene presentatie naar de andere kopiëren?
Ja. Voeg een kopie toe aan de bestemmingscollectie met de addClone methode. Bij het kopiëren tussen presentaties moet je ook lettertypen, thema’s, afbeeldingen en andere bronnen die door de bronlayout worden gebruikt verifiëren.
Wat gebeurt er als ik een layout wijzig die al in gebruik is?
Afhankelijke dia’s erven de layout‑wijzigingen tenzij ze de betrokken opmaak of objecten lokaal overschrijven. De geometrie van plaatsaanduidingen en geërfde styling kunnen daardoor op veel dia’s tegelijk veranderen. Gebruik getDependingSlides om de getroffen dia’s te identificeren vóór het bewerken van de layout.
Wat gebeurt er als ik een layout verwijder die nog in gebruik is?
Aspose.Slides gooit een PptxEditException. Wijs eerst de afhankelijke dia’s opnieuw toe, of gebruik removeUnusedLayoutSlides om uitsluitend niet‑gerefereerde layouts te verwijderen.









