Hantera bildmastere för presentationer på Android
Översikt
En bildmaster definierar gemensamma designinställningar för en grupp bildspel. Den kan innehålla gemensamma former, logotyper, bakgrunder, textstilar, temainställningar och sidfotinställningar. I PowerPoint är redigering av en bildmaster det vanliga sättet att hålla en presentation enhetlig utan att upprepa samma formatering på varje bild.
Aspose.Slides for Android via Java stöder samma modell. En presentation kan innehålla en eller flera bildmastere, och varje bildmaster kan innehålla flera layoutbilder. Vanliga bilder refererar vanligtvis inte direkt till en bildmaster. Istället använder en vanlig bild en layoutbild, och den layoutbilden tillhör en bildmaster.
Hierarkin är:
- Bildmaster – definierar den gemensamma designen och temat.
- Layoutbild – definierar en specifik placering av platshållare och layoutnivåformatering.
- Normal bild – innehåller det faktiska presentationsinnehållet och använder en layoutbild.

I Aspose.Slides representeras en bildmaster av gränssnittet IMasterSlide . Alla bildmastere i en presentation är tillgängliga via samlingen Presentation.getMasters , som implementerar IMasterSlideCollection. För hela Android via Java API‑ytan, se com.aspose.slides API‑referensen.
Inheritance
När samma egenskap är definierad på mer än en nivå vinner den mer specifika nivån. Till exempel, om en bildmaster och en layoutbild båda definierar en bakgrund, använder bilder baserade på den layouten layoutens bakgrund. För mer information om layoutbilder, se Apply or Change Slide Layouts.Åtkomst till bildmastere
I PowerPoint kan du öppna bildmaster‑visning via Visa > Bildmaster.

I Aspose.Slides, använd samlingen getMasters() för att komma åt bildmastere:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide firstMasterSlide = presentation.getMasters().get_Item(0);
int masterSlideCount = presentation.getMasters().size();
int firstMasterLayoutSlideCount = firstMasterSlide.getLayoutSlides().size();
System.out.println("Master slides: " + masterSlideCount);
System.out.println("Layouts in the first master: " + firstMasterLayoutSlideCount);
} finally {
presentation.dispose();
}
Du kan också hämta bildmastern som används av en normal bild via dess layout:
Presentation presentation = new Presentation("presentation.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
ILayoutSlide layoutSlide = slide.getLayoutSlide();
IMasterSlide masterSlide = layoutSlide.getMasterSlide();
String masterSlideName = masterSlide.getName();
System.out.println(masterSlideName);
} finally {
presentation.dispose();
}
Vad en bildmaster innehåller
En bildmaster är ett objekt liknande en bild. Den implementerar IBaseSlide, så den exponerar många av samma bildegenskaper som används av normala bilder och layoutbilder.
Vanligt använda medlemmar i en bildmaster inkluderar:
| Medlem | Syfte |
|---|---|
getBackground() |
Ställer in bakgrunden på masternivå för bilden. |
getShapes() |
Lagrar former placerade på mastern, såsom logotyper, bildramar och delad text. |
getLayoutSlides() |
Lagrar layoutbilderna som tillhör mastern. |
getThemeManager() |
Ger åtkomst till mastertema‑API:erna. |
getHeaderFooterManager() |
Styr sidhuvuden, sidfötter, datum och bildnummer för mastern och dess underliggande layouter. |
getDependingSlides() |
Returnerar normala bilder som är beroende av mastern via deras layouter. |
Lägg till en bild i en bildmaster
När du lägger till en bild i en bildmaster visas den på bilder som använder layouter från den mastern. Detta är användbart för logotyper, vattenstämplar, dekorativa band och andra återkommande visuella element.
Följande exempel lägger till en logotyp till den första bildmastern:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
IImage logo = Images.fromFile("logo.png");
try {
IPPImage logoImage = presentation.getImages().addImage(logo);
masterSlide.getShapes().addPictureFrame(
ShapeType.Rectangle,
20,
20,
80,
80,
logoImage);
} finally {
logo.dispose();
}
presentation.save("presentation-with-logo.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
För mer information om bildramar, se Picture Frame.
Arbeta med platshållare
Platshållare definieras normalt på layoutbilder. Bildmastern tillhandahåller den delade stilen och temat som dessa layouter ärver, medan varje layout bestämmer vilka platshållare som är tillgängliga och var de placeras.
I PowerPoint finns platshållarkommandon tillgängliga i bildmaster‑vyn.

För att lägga till nya platshållare med Aspose.Slides, arbeta med den layoutbild som tillhör mastern:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
ILayoutSlide blankLayoutSlide = masterSlide.getLayoutSlides().getByType(SlideLayoutType.Blank);
if (blankLayoutSlide == null) {
blankLayoutSlide = masterSlide.getLayoutSlides().add(SlideLayoutType.Blank, "Blank");
}
blankLayoutSlide.getPlaceholderManager().addTextPlaceholder(60, 120, 600, 80);
presentation.getSlides().addEmptySlide(blankLayoutSlide);
presentation.save("presentation-with-placeholder.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Du kan också formatera platshållarformer som redan finns på en bildmaster. Följande exempel hittar titelplatshållaren och applicerar en linjär gradientfyllning:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
IAutoShape titlePlaceholder = null;
for (IShape shape : masterSlide.getShapes()) {
if (shape instanceof IAutoShape) {
IAutoShape autoShape = (IAutoShape) shape;
if (autoShape.getPlaceholder() != null &&
autoShape.getPlaceholder().getType() == PlaceholderType.Title) {
titlePlaceholder = autoShape;
break;
}
}
}
if (titlePlaceholder != null) {
int redGradientColor = Color.valueOf(255, 0, 0).toArgb();
int purpleGradientColor = Color.valueOf(128, 0, 128).toArgb();
titlePlaceholder.getFillFormat().setFillType(FillType.Gradient);
titlePlaceholder.getFillFormat().getGradientFormat().setGradientShape(GradientShape.Linear);
titlePlaceholder.getFillFormat().getGradientFormat().getGradientStops().add(0.0f, redGradientColor);
titlePlaceholder.getFillFormat().getGradientFormat().getGradientStops().add(1.0f, purpleGradientColor);
}
presentation.save("presentation-title-style.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

För fler alternativ för platshållare och textformatering, se Set Prompt Text in Placeholder och Text Formatting.
Ändra en bildmasters bakgrund
En masterbakgrund ärvs av layouter och bilder som inte åsidosätter den. Följande exempel sätter en solid bakgrundsfärg för den första bildmastern:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
int masterBackgroundColor = Color.GREEN;
masterSlide.getBackground().setType(BackgroundType.OwnBackground);
masterSlide.getBackground().getFillFormat().setFillType(FillType.Solid);
masterSlide.getBackground().getFillFormat().getSolidFillColor().setColor(masterBackgroundColor);
presentation.save("presentation-master-background.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
För relaterade ämnen, se Presentation Background och Presentation Theme.
Klona en bildmaster till en annan presentation
Använd IMasterSlideCollection.addClone för att kopiera en bildmaster till en annan presentation. Den kopierade mastern kan sedan användas av layouter och bilder i destinationspresentationen.
Presentation sourcePresentation = new Presentation("source.pptx");
Presentation destinationPresentation = new Presentation("destination.pptx");
try {
IMasterSlide sourceMasterSlide = sourcePresentation.getMasters().get_Item(0);
IMasterSlide clonedMasterSlide = destinationPresentation.getMasters().addClone(sourceMasterSlide);
destinationPresentation.save("destination-with-master.pptx", SaveFormat.Pptx);
} finally {
sourcePresentation.dispose();
destinationPresentation.dispose();
}
Om du behöver klona normala bilder tillsammans med deras master, se Clone Slides.
Lägg till flera bildmastere
En presentation kan innehålla flera bildmastere. Detta är användbart när olika sektioner kräver olika varumärkesprofil, sidstruktur eller temainställningar.

Följande exempel klonar standardmastern, ger klonen en annan bakgrund, skapar en layout under den klonade mastern och lägger till en ny bild baserad på den layouten:
Presentation presentation = new Presentation("presentation.pptx");
try {
IMasterSlide defaultMasterSlide = presentation.getMasters().get_Item(0);
IMasterSlide sectionMasterSlide = presentation.getMasters().addClone(defaultMasterSlide);
int sectionMasterBackgroundColor = Color.GRAY;
sectionMasterSlide.getBackground().setType(BackgroundType.OwnBackground);
sectionMasterSlide.getBackground().getFillFormat().setFillType(FillType.Solid);
sectionMasterSlide.getBackground().getFillFormat().getSolidFillColor().setColor(sectionMasterBackgroundColor);
ILayoutSlide sourceBlankLayout = defaultMasterSlide.getLayoutSlides().getByType(SlideLayoutType.Blank);
if (sourceBlankLayout == null) {
sourceBlankLayout = defaultMasterSlide.getLayoutSlides().get_Item(0);
}
ILayoutSlide sectionBlankLayout = sectionMasterSlide.getLayoutSlides().addClone(sourceBlankLayout);
presentation.getSlides().addEmptySlide(sectionBlankLayout);
presentation.save("presentation-with-multiple-masters.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Jämför bildmastere
Bildmastere kan jämföras med equals‑metoden som ärvd från IBaseSlide. Jämförelsen kontrollerar struktur och statiskt innehåll, såsom former, text, formatering, animationer och andra bildinställningar. Den jämför inte unika identifierare, såsom bild‑ID:n, eller dynamiska platshållarvärden, såsom aktuellt datum.
Presentation firstPresentation = new Presentation("first.pptx");
Presentation secondPresentation = new Presentation("second.pptx");
try {
int firstPresentationMasterCount = firstPresentation.getMasters().size();
int secondPresentationMasterCount = secondPresentation.getMasters().size();
for (int firstMasterIndex = 0; firstMasterIndex < firstPresentationMasterCount; firstMasterIndex++) {
for (int secondMasterIndex = 0; secondMasterIndex < secondPresentationMasterCount; secondMasterIndex++) {
IMasterSlide firstMasterSlide = firstPresentation.getMasters().get_Item(firstMasterIndex);
IMasterSlide secondMasterSlide = secondPresentation.getMasters().get_Item(secondMasterIndex);
boolean areMasterSlidesEqual = firstMasterSlide.equals(secondMasterSlide);
if (areMasterSlidesEqual) {
System.out.printf(
"first.pptx master #%d equals second.pptx master #%d%n",
firstMasterIndex,
secondMasterIndex);
}
}
}
} finally {
firstPresentation.dispose();
secondPresentation.dispose();
}
För mer information, se Compare Presentation Slides.
Ställ in bildmaster‑vyn som standardvy
Använd metoden setLastView på ViewProperties för att styra den vy som PowerPoint öppnar först. Följande exempel öppnar presentationen i bildmaster‑vyn:
Presentation presentation = new Presentation("presentation.pptx");
try {
presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
presentation.save("presentation-master-view.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
För fler vyinställningar, se Save Presentation.
Ta bort oanvända bildmastere
Presentationer kan ibland innehålla bildmastere som inte längre används av någon normal bild. Att ta bort oanvända mastere kan minska filstorleken och förenkla underhållet av mallar.
Använd removeUnused för att ta bort oanvända mastere från samlingen getMasters():
Presentation presentation = new Presentation("presentation.pptx");
try {
presentation.getMasters().removeUnused(true);
presentation.save("presentation-clean.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Du kan också använda low‑code‑metoden Compress.removeUnusedMasterSlides :
Presentation presentation = new Presentation("presentation.pptx");
try {
Compress.removeUnusedMasterSlides(presentation);
presentation.save("presentation-clean.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
Vad är skillnaden mellan en bildmaster och en layoutbild?
En bildmaster definierar gemensamma designinställningar såsom tema, bakgrund, gemensamma former och textstilar. En layoutbild tillhör en bildmaster och definierar en specifik placering av platshållare. En normal bild använder en layoutbild, så den ärver både från layouten och från mastern.
Kan en presentation innehålla flera bildmastere?
Ja. En presentation kan innehålla flera bildmastere. Använd flera mastere när olika sektioner kräver olika visuella system eller varumärkesprofil.
Bör jag lägga till platshållare i en bildmaster eller en layoutbild?
I de flesta fall lägger du till platshållare i layoutbilder. Placera delade visuella element och gemensam formatering på bildmastern, och lägg sedan innehållsplatshållare på de layouter som normala bilder kommer att använda.
Kan jag ta bort en bildmaster som fortfarande används?
Nej. En bildmaster som har beroende bilder kan inte tas bort säkert direkt. Flytta först dessa bilder till layouter under en annan master, eller använd en städningsmetod för oanvända mastere som bara tar bort mastere som inte används.