Hantera presentations slide masters i JavaScript
Översikt
En slide master definierar gemensamma designinställningar för en grupp bilder. Den kan innehålla gemensamma former, logotyper, bakgrunder, textstilar, temainställningar och sidfotinställningar. I PowerPoint är redigering av en slide master det vanliga sättet att hålla en presentation enhetlig utan att upprepa samma formatering på varje bild.
Aspose.Slides för Node.js via Java stödjer samma modell. En presentation kan innehålla en eller flera master‑bilder, och varje master‑bild kan innehålla flera layout‑bilder. Normala bilder hänvisar normalt inte direkt till en master‑bild. Istället använder en normal bild en layout‑bild, och den layout‑bilden tillhör en master‑bild.
Hierarkin är:
- Slide master – definierar den delade designen och temat.
- Layout slide – definierar en specifik placering av platshållare och layout‑nivåformatering.
- Normal slide – innehåller det faktiska presentationsinnehållet och använder en layout‑bild.

I Aspose.Slides representeras en slide master av klassen MasterSlide. Alla master‑bilder i en presentation finns tillgängliga via samlingen Presentation.getMasters().
Inheritance
När samma egenskap definieras på mer än en nivå vinner den mer specifika nivån. Till exempel, om en master‑bild och en layout‑bild båda definierar en bakgrund, använder bilder baserade på den layouten layout‑bakgrunden. För mer information om layout‑bilder, se Apply or Change Slide Layouts.Åtkomst till Slide Masters
I PowerPoint kan du öppna Slide Master‑vyn via View > Slide Master.

I Aspose.Slides använder du samlingen getMasters() för att komma åt master‑bilder:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
let firstMasterSlide = presentation.getMasters().get_Item(0);
let masterSlideCount = presentation.getMasters().size();
let firstMasterLayoutSlideCount = firstMasterSlide.getLayoutSlides().size();
console.log("Master slides: " + masterSlideCount);
console.log("Layouts in the first master: " + firstMasterLayoutSlideCount);
} finally {
presentation.dispose();
}
Du kan också hämta den master‑bild som en normal bild använder via dess layout:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
let slide = presentation.getSlides().get_Item(0);
let layoutSlide = slide.getLayoutSlide();
let masterSlide = layoutSlide.getMasterSlide();
let masterSlideName = masterSlide.getName();
console.log(masterSlideName);
} finally {
presentation.dispose();
}
Vad en Slide Master Innehåller
En master‑bild är ett bildlikt objekt. Den ärver gemensamt bildbeteende från BaseSlide, så den exponerar många av samma bildegenskaper som används av normala och layout‑bilder. Master‑specifika medlemmar listas på API‑sidan för MasterSlide.
Vanligt använda master‑bildmedlemmar inkluderar:
| Medlem | Syfte |
|---|---|
getBackground() |
Ställer in master‑nivåns bildbakgrund. |
getShapes() |
Lagrar former som placerats på mastern, såsom logotyper, bildramar och delad text. |
getLayoutSlides() |
Lagrar layout‑bilderna som tillhör mastern. |
getThemeManager() |
Ger åtkomst till master‑tema‑API:erna. |
getHeaderFooterManager() |
Kontrollerar rubriker, sidfötter, datum och bildnummer för mastern och dess underliggande layouter. |
getDependingSlides() |
Returnerar normala bilder som beror på mastern via sina layouter. |
Lägg till en Bild i en Slide Master
När du lägger till en bild i en master‑bild visas den på bilder som använder layouter från den mastern. Detta är användbart för logotyper, vattenmärken, dekorativa band och andra upprepade visuella element.
Följande exempel lägger till en logotyp på den första master‑bilden:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
let masterSlide = presentation.getMasters().get_Item(0);
let logo = aspose.slides.Images.fromFile("logo.png");
try {
let logoImage = presentation.getImages().addImage(logo);
masterSlide.getShapes().addPictureFrame(
aspose.slides.ShapeType.Rectangle,
20,
20,
80,
80,
logoImage);
} finally {
logo.dispose();
}
presentation.save("presentation-with-logo.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
För mer information om bildramar, se Picture Frame.
Styr Synligheten för Master‑Grafik
Använd BaseSlide.setShowMasterShapes för att dölja ärvd master‑grafik, såsom logotyper eller dekorativa former, utan att ta bort dem från mastern. Skicka false till Slide.setShowMasterShapes på den bild som ska utesluta dessa grafikobjekt och håll värdet true på bilder som ska visa dem.
Följande självständiga exempel skapar ett blått dekorativt band på en master och två bilder som använder samma tomma layout. Bandet är synligt på den första bilden och dolt på den andra. Ingen inmatningspresentation eller bild behövs.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation();
try {
let masterSlide = presentation.getMasters().get_Item(0);
let blankLayoutType = java.newByte(aspose.slides.SlideLayoutType.Blank);
let layoutSlide = masterSlide.getLayoutSlides().getByType(blankLayoutType);
layoutSlide.setShowMasterShapes(true);
let slideHeight = presentation.getSlideSize().getSize().getHeight();
let band = masterSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 0, 0, 60, slideHeight);
let bandColor = java.newInstanceSync("java.awt.Color", 70, 130, 180);
let solidFillType = java.newByte(aspose.slides.FillType.Solid);
let noFillType = java.newByte(aspose.slides.FillType.NoFill);
band.getFillFormat().setFillType(solidFillType);
band.getFillFormat().getSolidFillColor().setColor(bandColor);
band.getLineFormat().getFillFormat().setFillType(noFillType);
let visibleSlide = presentation.getSlides().get_Item(0);
visibleSlide.setLayoutSlide(layoutSlide);
visibleSlide.getShapes().clear();
let hiddenSlide = presentation.getSlides().addEmptySlide(layoutSlide);
visibleSlide.setShowMasterShapes(true);
hiddenSlide.setShowMasterShapes(false);
presentation.save("master-graphics.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Exemplet använder layouten Blank som levereras med en ny presentation och tar bort de ursprungliga platshållarna från den första bilden.
Välj Omfattningen för Inställningen
En normal bild använder sin master via Slide.getLayoutSlide och LayoutSlide.getMasterSlide. Att ställa in egenskapen på en individuell bild påverkar bara den bilden. Att skicka false till LayoutSlide.setShowMasterShapes döljer master‑grafik för bilder som använder den delade layouten, även om deras egna inställning är true. För att dölja grafik på bara en bild, ändra bildens egenskap och lämna den delade layouten oförändrad.
Inställningen stöds inte som en synlighetskontroll på själva master‑bilden. På en master returnerar getShowMasterShapes alltid false, och att skicka true till setShowMasterShapes kastar ett undantag. Använd den på en normal bild eller en layout istället.
Skilj Grafik från Bakgrunden
| Åtgärd | Effekt |
|---|---|
| Dölja master‑grafik | Kontrollerar synligheten för ärvda master‑former utan att ta bort dem eller ändra bildens egna former. |
| Ändra bildens bakgrundsfyllning | Ändrar bakgrundsfärg, gradient eller bild. Master‑grafik är separata former och kan förbli synliga över den bakgrunden. Se Presentation Background. |
| Ta bort en form från mastern | Tar bort den delade källformen, så den inte längre är tillgänglig för någon bild som använder den mastern. |
Arbeta med Platshållare
Platshållare definieras normalt på layout‑bilder. Master‑bilden 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 i Slide Master‑vyn.

För att lägga till nya platshållare med Aspose.Slides arbetar du med den layout‑bild som tillhör mastern:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
let masterSlide = presentation.getMasters().get_Item(0);
let blankLayoutType = java.newByte(aspose.slides.SlideLayoutType.Blank);
let blankLayoutSlide = masterSlide.getLayoutSlides().getByType(blankLayoutType);
if (blankLayoutSlide === null) {
blankLayoutSlide = masterSlide.getLayoutSlides().add(blankLayoutType, "Blank");
}
blankLayoutSlide.getPlaceholderManager().addTextPlaceholder(60, 120, 600, 80);
presentation.getSlides().addEmptySlide(blankLayoutSlide);
presentation.save("presentation-with-placeholder.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Du kan också formatera platshållarformer som redan finns på en master‑bild. Följande exempel hittar titel‑platshållaren och applicerar en linjär gradientfyllning:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
let masterSlide = presentation.getMasters().get_Item(0);
let titlePlaceholder = null;
let masterShapes = masterSlide.getShapes();
let masterShapeCount = masterShapes.size();
for (let masterShapeIndex = 0; masterShapeIndex < masterShapeCount; masterShapeIndex++) {
let shape = masterShapes.get_Item(masterShapeIndex);
if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) {
let placeholder = shape.getPlaceholder();
if (placeholder !== null && placeholder.getType() === aspose.slides.PlaceholderType.Title) {
titlePlaceholder = shape;
break;
}
}
}
if (titlePlaceholder !== null) {
let gradientFillType = java.newByte(aspose.slides.FillType.Gradient);
let linearGradientShape = java.newByte(aspose.slides.GradientShape.Linear);
let redGradientColor = java.newInstanceSync("java.awt.Color", 255, 0, 0);
let purpleGradientColor = java.newInstanceSync("java.awt.Color", 128, 0, 128);
titlePlaceholder.getFillFormat().setFillType(gradientFillType);
titlePlaceholder.getFillFormat().getGradientFormat().setGradientShape(linearGradientShape);
titlePlaceholder.getFillFormat().getGradientFormat().getGradientStops().add(0.0, redGradientColor);
titlePlaceholder.getFillFormat().getGradientFormat().getGradientStops().add(1.0, purpleGradientColor);
}
presentation.save("presentation-title-style.pptx", aspose.slides.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 Slide Master‑Bakgrund
En master‑bakgrund ärvs av layouter och bilder som inte åsidosätter den. Följande exempel sätter en solid bakgrundsfärg för den första master‑bilden:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
let masterSlide = presentation.getMasters().get_Item(0);
let ownBackgroundType = java.newByte(aspose.slides.BackgroundType.OwnBackground);
let solidFillType = java.newByte(aspose.slides.FillType.Solid);
let masterBackgroundColor = java.getStaticFieldValue("java.awt.Color", "GREEN");
masterSlide.getBackground().setType(ownBackgroundType);
masterSlide.getBackground().getFillFormat().setFillType(solidFillType);
masterSlide.getBackground().getFillFormat().getSolidFillColor().setColor(masterBackgroundColor);
presentation.save("presentation-master-background.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
För relaterade ämnen, se Presentation Background och Presentation Theme.
Klona en Slide Master till en Annan Presentation
Använd MasterSlideCollection.addClone för att kopiera en master‑bild till en annan presentation. Den kopierade mastern kan sedan användas av layouter och bilder i destinationspresentationen.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let sourcePresentation = new aspose.slides.Presentation("source.pptx");
let destinationPresentation = new aspose.slides.Presentation("destination.pptx");
try {
let sourceMasterSlide = sourcePresentation.getMasters().get_Item(0);
let clonedMasterSlide = destinationPresentation.getMasters().addClone(sourceMasterSlide);
destinationPresentation.save("destination-with-master.pptx", aspose.slides.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 Slide Masters
En presentation kan innehålla flera master‑bilder. Detta är användbart när olika sektioner kräver olika varumärkesprofilering, sidstruktur eller temainställningar.

Följande exempel klonar standard‑mastern, ger klonen en annan bakgrund, skapar en layout under den klonade mastern och lägger till en ny bild baserad på den layouten:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
let defaultMasterSlide = presentation.getMasters().get_Item(0);
let sectionMasterSlide = presentation.getMasters().addClone(defaultMasterSlide);
let ownBackgroundType = java.newByte(aspose.slides.BackgroundType.OwnBackground);
let solidFillType = java.newByte(aspose.slides.FillType.Solid);
let sectionMasterBackgroundColor = java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY");
sectionMasterSlide.getBackground().setType(ownBackgroundType);
sectionMasterSlide.getBackground().getFillFormat().setFillType(solidFillType);
sectionMasterSlide.getBackground().getFillFormat().getSolidFillColor().setColor(sectionMasterBackgroundColor);
let blankLayoutType = java.newByte(aspose.slides.SlideLayoutType.Blank);
let sourceBlankLayout = defaultMasterSlide.getLayoutSlides().getByType(blankLayoutType);
if (sourceBlankLayout === null) {
sourceBlankLayout = defaultMasterSlide.getLayoutSlides().get_Item(0);
}
let sectionBlankLayout = sectionMasterSlide.getLayoutSlides().addClone(sourceBlankLayout);
presentation.getSlides().addEmptySlide(sectionBlankLayout);
presentation.save("presentation-with-multiple-masters.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Jämför Slide Masters
Master‑bilder kan jämföras med metoden equals som ärvd från BaseSlide. 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.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let firstPresentation = new aspose.slides.Presentation("first.pptx");
let secondPresentation = new aspose.slides.Presentation("second.pptx");
try {
let firstPresentationMasterCount = firstPresentation.getMasters().size();
let secondPresentationMasterCount = secondPresentation.getMasters().size();
for (let firstMasterIndex = 0; firstMasterIndex < firstPresentationMasterCount; firstMasterIndex++) {
for (let secondMasterIndex = 0; secondMasterIndex < secondPresentationMasterCount; secondMasterIndex++) {
let firstMasterSlide = firstPresentation.getMasters().get_Item(firstMasterIndex);
let secondMasterSlide = secondPresentation.getMasters().get_Item(secondMasterIndex);
let areMasterSlidesEqual = firstMasterSlide.equals(secondMasterSlide);
if (areMasterSlidesEqual) {
console.log(
"first.pptx master #" + firstMasterIndex +
" equals second.pptx master #" + secondMasterIndex);
}
}
}
} finally {
firstPresentation.dispose();
secondPresentation.dispose();
}
För mer information, se Compare Presentation Slides.
Ställ in Slide Master‑vyn som Standardvy
Använd metoden setLastView på ViewProperties för att styra vilken vy PowerPoint öppnar först. Följande exempel öppnar presentationen i Slide Master‑vyn:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
let slideMasterViewType = java.newByte(aspose.slides.ViewType.SlideMasterView);
presentation.getViewProperties().setLastView(slideMasterViewType);
presentation.save("presentation-master-view.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
För fler vy‑inställningar, se Save Presentation.
Ta Bort Oanvända Master‑bilder
Presentationer kan ibland innehålla master‑bilder som inte längre används av några normala bilder. Att ta bort oanvända masters kan minska filstorleken och förenkla underhållet av mallar.
Använd removeUnused för att ta bort oanvända masters från samlingen getMasters():
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
presentation.getMasters().removeUnused(true);
presentation.save("presentation-clean.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Du kan också använda den låga kod‑metoden Compress.removeUnusedMasterSlides:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
aspose.slides.Compress.removeUnusedMasterSlides(presentation);
presentation.save("presentation-clean.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
Vad är skillnaden mellan en slide master och en layout‑bild?
En slide master definierar gemensamma designinställningar såsom tema, bakgrund, gemensamma former och textstilar. En layout‑bild tillhör en master‑bild och definierar en specifik placering av platshållare. En normal bild använder en layout‑bild, så den ärvd både från layouten och mastern.
Kan en presentation innehålla flera slide masters?
Ja. En presentation kan innehålla flera slide masters. Använd flera masters när olika sektioner behöver olika visuella system eller varumärkesprofilering.
Ska jag lägga till platshållare på en master‑bild eller en layout‑bild?
I de flesta fall bör du lägga till platshållare på layout‑bilder. Placera delade visuella element och delad formatering på master‑bilden, och placera innehållsplatshållare på de layouter som normala bilder kommer att använda.
Kan jag ta bort en master‑bild som fortfarande används?
Nej. En master‑bild 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 oprenumererad‑master‑rensningsmetod som bara tar bort masters som inte är i bruk.