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:

  1. A mester dia meghatározza a témát, a megosztott formázást, a hátteret és a közös elemeket.
  2. A elrendezés dia egy mesterhez tartozik, és meghatároz egy adott helyőrző-elosztást.
  3. 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.

PowerPoint helyőrző LayoutPlaceholderManager metódus
Tartalom addContentPlaceholder(x, y, width, height)
Tartalom (Függőleges) addVerticalContentPlaceholder(x, y, width, height)
Szöveg addTextPlaceholder(x, y, width, height)
Szöveg (Függőleges) addVerticalTextPlaceholder(x, y, width, height)
Kép addPicturePlaceholder(x, y, width, height)
Diagram addChartPlaceholder(x, y, width, height)
Táblázat addTablePlaceholder(x, y, width, height)
SmartArt addSmartArtPlaceholder(x, y, width, height)
Média addMediaPlaceholder(x, y, width, height)
Online kép addOnlineImagePlaceholder(x, y, width, height)

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:

A helyőrzők az elrendezés dián

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.