Diaelrendezések alkalmazása vagy módosítása JavaScriptben
Áttekintés
A diaelrendezés meghatározza a helyőrzők (például címek, szöveg, képek, diagramok és táblázatok) helyét és formázását. Egy elrendezés alkalmazása konzisztens felépítést ad a diáknak, miközben minden dia saját tartalmát tartalmazhatja.
A leggyakoribb elrendezések a következők:
- Címdia: Cím és alcím helyőrzőket tartalmaz.
- Cím és Tartalom: Egy címhelyőrzőt és egy általános célú tartalomhelyőrzőt tartalmaz.
- Üres: Nem tartalmaz tartalomhelyőrzőket, és hasznos, ha minden alakzatot kézzel pozicionálunk.
Az elrendezés öröklődésének megértése
Egy bemutatónak három kapcsolódó szintje van:
- A mester dia meghatározza a témát, a megosztott formázást, a hátteret és a közös elemeket.
- A elrendezés dia egy mesterhez tartozik, és meghatároz egy adott helyőrző-elosztást.
- A normál dia egy elrendezést használ, és tárolja a dia számára megadott tartalmat.
Egy normál dia az elrendezésétől örökli a témát és a formázást, az elrendezés pedig a mesterétől örököl. Egy normál dián közvetlenül beállított érték felülírja az örökölt értéket azon a szinten. Amikor egy normál diát létrehoznak, a helyőrző alakzatok a kiválasztott elrendezésből generálódnak, míg a helyőrzőkbe megadott tartalom a normál dia része.
Adj hozzá szükséges helyőrzőket egy elrendezéshez, mielőtt diák létrehozására használnád. Egy elrendezéshez később hozzáadott további helyőrző nem ad hozzá automatikusan megfelelő helyőrző alakzatot a már létező normál diákhoz.
Ennek a kapcsolatnak két fontos következménye van:
- Az örökölt formázás vagy a meglévő helyőrző geometria módosítása egy elrendezésen minden attól függő diát frissíthet. Mielőtt egy már használt elrendezést szerkesztenél, ellenőrizd annak függő diáit, és tekintsd át az eredményül kapott bemutatót.
- Egy elrendezést, amelyet még diák használnak, nem lehet eltávolítani. Először rendeld át a függő diát egy másik elrendezéshez, vagy csak a nem használt elrendezéseket távolítsd el.
További információért a hierarchia legfelső szintjéről, lásd a Dia Mester.
Az örökölt logók vagy díszítő mesterformák elrejtéséhez egy dián vagy közös elrendezésen keresztül, lásd a Mestergrafikák láthatóságának vezérlése. A példa két, ugyanazt a mestert használó diát hasonlít össze.
Diaelrendezés kiválasztása és alkalmazása
Használj egy SlideLayoutType értéket, amikor a bemutató a szabványos PowerPoint elrendezésdefiníciókat követi. Az elrendezésneveket a felhasználó szerkesztheti, és lokalizálhatók, így a név alapú kiválasztás kevésbé megbízható, hacsak nem te irányítod a forrássablont.
A következő példa a Cím és Tartalom elrendezést keresi az első mesternél. Ha ez az elrendezés nem érhető el, szándékosan az Üres elrendezésre tér vissza. A második null ellenőrzés szükséges, mert egy bemutató csak saját elrendezéseket tartalmazhat. A kiválasztott elrendezést ezután a Slide.setLayoutSlide metódussal alkalmazzák az első normál diára.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation("input.pptx");
try {
let layoutSlides = presentation.getMasters().get_Item(0).getLayoutSlides();
let titleAndObjectLayoutType = java.newByte(aspose.slides.SlideLayoutType.TitleAndObject);
let blankLayoutType = java.newByte(aspose.slides.SlideLayoutType.Blank);
let targetLayout = layoutSlides.getByType(titleAndObjectLayoutType);
if (targetLayout === null) {
targetLayout = layoutSlides.getByType(blankLayoutType);
}
if (targetLayout === null) {
throw new Error("The first master does not contain a suitable layout slide.");
}
presentation.getSlides().get_Item(0).setLayoutSlide(targetLayout);
presentation.save("output-with-new-layout.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Egy dia elrendezésének módosítása nem távolítja el a közvetlenül a diára hozzáadott egyszerű alakzatokat. Azonban a helyőrző pozíciók, az örökölt formázás és a meglévő helyőrzők és az új elrendezés közötti megfelelés változhat, ezért ellenőrizd a kimenetet, amikor lényegesen eltérő elrendezések között váltasz.
Elrendezés dia hozzáadása
A kiválasztás és a létrehozás külön műveletek. Az előző példa egy meglévő elrendezést választ ki; nem hoz létre újat. Egy elrendezés létrehozásához hívd meg a MasterLayoutSlideCollection.add metódust a cél mester elrendezésgyűjteményén.
A következő példa mindig hozzáad egy új Cím és Tartalom elrendezést Report Title and Content néven, majd ennek alapján egy normál diát ad hozzá. Az elrendezésneveknek egyedieknek kell lenniük a gyűjteményen belül.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation("input.pptx");
try {
let masterSlide = presentation.getMasters().get_Item(0);
let titleAndObjectLayoutType = java.newByte(aspose.slides.SlideLayoutType.TitleAndObject);
let reportLayout = masterSlide.getLayoutSlides().add(titleAndObjectLayoutType, "Report Title and Content");
presentation.getSlides().addEmptySlide(reportLayout);
presentation.save("output-with-report-layout.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Csak akkor adj hozzá elrendezést, ha a sablon valóban egy új újrahasználható struktúrát igényel. Ha már létezik megfelelő elrendezés, válaszd ki és használd újra a duplikálás helyett.
Helyőrzők hozzáadása egy elrendezés diához
A LayoutSlide.getPlaceholderManager metódus egy LayoutPlaceholderManager példányt ad a helyőrző alakzatok elrendezéshez való hozzáadásához.
A következő példa ellenőrzi, hogy az Üres elrendezés létezik-e, négy helyőrzőt ad hozzá, majd egy módosított elrendezést használó normál diát hoz létre. A sorrend szándékos: a helyőrzőket a normál dia létrehozása előtt adják hozzá, így az Aspose.Slides képes a megfelelő helyőrző alakzatok generálására azon a dián.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation();
try {
let blankLayoutType = java.newByte(aspose.slides.SlideLayoutType.Blank);
let blankLayout = presentation.getLayoutSlides().getByType(blankLayoutType);
if (blankLayout === null) {
throw new Error("The presentation does not contain a Blank layout slide.");
}
let 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", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az eredmény:

Warning
Az örökölt formázás vagy a meglévő elrendezéshelyőrzők geometriájának módosítása befolyásolhatja a függő diákat. Az újonnan hozzáadott elrendezéshelyőrző nem kerül visszatöltésre a meglévő normál diákba. Az elrendezésváltoztatásokat egy bemutató másolatán teszteld, és ellenőrizd minden függő diát.Használaton kívüli elrendezés diák eltávolítása
Használd a Compress.removeUnusedLayoutSlides metódust a olyan elrendezések eltávolításához, amelyekre egyetlen normál dia sem hivatkozik. A metódus érintetlenül hagyja a még használt elrendezéseket.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("input.pptx");
try {
aspose.slides.Compress.removeUnusedLayoutSlides(presentation);
presentation.save("output-without-unused-layouts.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Egy adott elrendezés eltávolításához először használd annak hasDependingSlides vagy getDependingSlides metódusát. A LayoutSlide.remove hívása előtt rendeld át a függő diát. Egy használatban lévő elrendezés eltávolításának kísérlete PptxEditException kivételt vált ki.
Lábléc láthatóságának vezérlése egy elrendezés dián
Egy elrendezésnek saját lábléc, diaszám és dátum-idő helyőrzői vannak. Használd a LayoutSlide.getHeaderFooterManager metódust ezeknek a helyőrzőknek a vezérléséhez egy elrendezésen belül. Ez hasznos például, ha a tartalom elrendezéseknek láblécet kell mutatniuk, de a címelrendezéseknek nem.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation("input.pptx");
try {
let titleAndObjectLayoutType = java.newByte(aspose.slides.SlideLayoutType.TitleAndObject);
let blankLayoutType = java.newByte(aspose.slides.SlideLayoutType.Blank);
let layoutSlide = presentation.getLayoutSlides().getByType(titleAndObjectLayoutType);
if (layoutSlide === null) {
layoutSlide = presentation.getLayoutSlides().getByType(blankLayoutType);
}
if (layoutSlide === null) {
throw new Error("The presentation does not contain a suitable layout slide.");
}
let 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", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Lábléc láthatóságának vezérlése egy mesteren és annak gyermekelrendezésein
Az egységes lábléc beállítások egy mesterhierarchián való alkalmazásához használd a MasterSlide.getHeaderFooterManager metódust. A MasterSlideHeaderFooterManager terjesztési metódusai a mesteren, annak függő elrendezés diákon és normál diákon működnek; nem csak egyetlen normál diát céloznak.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("input.pptx");
try {
let 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", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
Mi a különbség egy mester dia és egy elrendezés dia között?
A mester dia meghatározza a bemutató témáját és a megosztott formázást. Egy elrendezés dia egy mesterhez tartozik, és egy újrahasználható helyőrző-elosztást definiál. A normál diák ezeket az elrendezéseket használják, és a diára jellemző tartalmat tárolják.
Másolhatok egy elrendezés diát egyik bemutatóból a másikba?
Igen. Egy másolatot a célgyűjteményhez adhatod az addClone metódussal. Bemutatók közti másoláskor ellenőrizd a forrás elrendezés által használt betűtípusokat, témákat, képeket és egyéb erőforrásokat is.
Mi történik, ha módosítok egy már használt elrendezést?
A függő diák öröklik az elrendezés változásait, hacsak helyileg nem írják felül az érintett formázást vagy objektumokat. Ennek következtében a helyőrző geometria és az örökölt stílus sok dián egyszerre megváltozhat. Használd a getDependingSlides metódust a érintett diák azonosításához az elrendezés szerkesztése előtt.
Mi történik, ha eltávolítok egy még használt elrendezést?
Az Aspose.Slides PptxEditException kivételt dob. Először rendeld át a függő diákot, vagy használd a removeUnusedLayoutSlides metódust, hogy csak a nem hivatkozott elrendezéseket távolítsd el.









