Diaelrendezések alkalmazása vagy módosítása Java-ban
Áttekintés
A diavetítés elrendezés meghatározza a helyőrzők, például címek, szöveg, képek, diagramok és táblázatok pozícióit és formázását. Egy elrendezés alkalmazása egységes szerkezetet biztosít a diák számára, miközben lehetővé teszi, hogy minden dia a saját tartalmát tartalmazza.
A leggyakoribb elrendezések a következők:
- Címdia: Címet és alcímet tartalmazó helyőrzőket tartalmaz.
- Cím és Tartalom: Címhelyőrzőt és általános célú tartalomhelyőrzőt tartalmaz.
- Üres: Nem tartalmaz tartalomhelyőrzőket, és hasznos, ha minden alakzatot manuálisan helyeznek el.
Az elrendezés öröklődésének megértése
Egy prezentációnak három kapcsolódó szintje van:
- A master dia meghatározza a témát, a megosztott formázást, a hátteret és a közös objektumokat.
- Egy elrendezési dia egy masterhez tartozik, és egy adott helyőrző-elosztást definiál.
- Egy normál dia egy elrendezést használ, és tárolja az adott diára beírt tartalmat.
A normál dia az elrendezéstől örökli a témát és a formázást, az elrendezés pedig a mastertől örököl. A 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 hoznak létre, a helyőrző alakzatok a kiválasztott elrendezésből generálódnak, míg a helyőrzőkbe beírt tartalom a normál dia része.
Adjon hozzá szükséges helyőrzőket egy elrendezéshez, mielőtt diákat hozna létre belőle. Egy újabb helyőrző későbbi hozzáadása egy elrendezéshez nem ad automatikusan megfelelő helyőrző alakzatot a meglévő 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 frissítheti az összes tőle függő diát. Mielőtt egy már használt elrendezést szerkesztené, ellenőrizze a függő diákat, és tekintse át a keletkező prezentációt.
- Az olyan elrendezést, amelyet még diák használnak, nem lehet eltávolítani. Először rendelje át a függő diákat egy másik elrendezésre, vagy csak a nem használt elrendezéseket távolítsa el.
További információkért a hierarchia felső szintjével kapcsolatban lásd a Dia mester.
Elrendezés kiválasztása és alkalmazása
Használjon elrendezéstípust, ha a prezentáció a PowerPoint szabványos elrendezésdefinícióit követi. Az elrendezésnevek felhasználó által szerkeszthetők és lokalizálhatók, ezért a név alapján történő kiválasztás kevésbé megbízható, hacsak nem ellenőrzi a forrás sablont.
A következő példában a Cím és Tartalom elrendezést keresi az első masteren. Ha ez az elrendezés nem érhető el, tudatosan a Üres elrendezésre tér vissza. A második null ellenőrzés szükséges, mert egy prezentáció csak egyedi elrendezéseket tartalmazhat. A kiválasztott elrendezést ezután az első normál diára alkalmazza a ISlide.setLayoutSlide metóduson keresztül.
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();
}
Egy dia elrendezésének megváltoztatása nem távolítja el a közvetlenül a diára hozzáadott alakzatokat. Azonban a helyőrzők pozíciói, az örökölt formázás és a meglévő helyőrzők és az új elrendezés közötti megfelelés megváltozhat, ezért ellenőrizze a kimenetet, ha lényegesen eltérő elrendezések között vált.
Elrendezési 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ívja meg a IMasterLayoutSlideCollection.add metódust a cél master elrendezésgyűjteményén.
A következő példa mindig egy új Cím és Tartalom elrendezést ad hozzá Report Title and Content néven, majd hozzáad egy normál diát, amely ezen alapul. Az elrendezésneveknek egyedieknek kell lenniük a gyűjteményen belül.
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();
}
Csak akkor adjon hozzá elrendezést, ha a sablon valóban igényel egy újrahasználható struktúrát. Ha már létezik megfelelő elrendezés, válassza ki és használja újra azt a duplikátum létrehozása helyett.
Helyőrzők hozzáadása egy elrendezési diához
Az ILayoutSlide.getPlaceholderManager metódus egy ILayoutPlaceholderManager objektumot biztosít a helyőrző alakzatok elrendezéshez történő hozzáadásához.
A következő példa ellenőrzi, hogy a Üres elrendezés létezik-e, négy helyőrzőt ad hozzá, majd létrehoz egy normál diát, amely a módosított elrendezést használja. 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 a megfelelő helyőrző alakzatokat tudja generálni azon a dian.
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();
}
Az eredmény:

Figyelmeztetés
Az örökölt formázás vagy a meglévő elrendezési helyőrzők geometriai módosítása befolyásolhatja a függő diát. Az újonnan hozzáadott elrendezési helyőrző nem kerül visszatöltésre a meglévő normál diákba. Tesztelje az elrendezés változtatásait a prezentáció egy másolatán, és ellenőrizze minden függő diát.Nem használt elrendezési diák eltávolítása
Használja a Compress.removeUnusedLayoutSlides metódust a olyan elrendezések eltávolításához, amelyeket egyetlen normál dia sem hivatkozik. A metódus érintetlenül hagyja a még használatban lévő elrendezéseket.
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();
}
Egy konkrét elrendezés eltávolításához először használja a hasDependingSlides vagy a getDependingSlides metódust. Rendezze át a függő diákat, mielőtt meghívná a ILayoutSlide.remove metódust. Egy használatban lévő elrendezés eltávolítása PptxEditException kivételt dob.
Lábléc láthatóságának vezérlése egy elrendezési dián
Egy elrendezés saját lábléc, dia-szám és dátum-idő helyőrzőkkel rendelkezik. Használja a ILayoutSlide.getHeaderFooterManager metódust ezeknek a helyőrzőknek a vezérléséhez egyetlen elrendezés esetén. Ez hasznos például, ha a tartalom elrendezéseknek láblécet kell megjeleníteniük, míg a cím elrendezéseknek nem.
A következő példa biztonságosan kiválaszt egy elrendezést, és láthatóvá teszi annak lábléc elemeit:
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();
}
Lábléc láthatóságának vezérlése egy masteren és annak alárendelt elrendezésein
A master hierarchiában egységes lábléc beállítások alkalmazásához használja az IMasterSlide.getHeaderFooterManager metódust. Az IMasterSlideHeaderFooterManager terjesztési metódusai a masteren, annak függő elrendezési diáin és normál diáin dolgoznak; nem csak egyetlen normál diát céloznak.
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();
}
GYIK
Mi a különbség a master dia és az elrendezési dia között?
A master dia meghatározza a prezentáció témáját és a megosztott formázást. Egy elrendezési dia egy masterhez 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 elrendezési diát egyik prezentációból a másikba?
Igen. A addClone metódussal adjon hozzá egy másolatot a célgyűjteményhez. Prezentációk közötti másolásnál ellenőrizze a betűtípusokat, témákat, képeket és a forrás elrendezés által használt egyéb erőforrásokat is.
Mi történik, ha módosítok egy már használatban lévő elrendezést?
A függő diák öröklik az elrendezés módosításait, hacsak nem írják felül a helyi formázást vagy objektumokat. Ennek következtében a helyőrzők geometriai alakja és az örökölt stílus sok dián egyszerre megváltozhat. Használja a getDependingSlides metódust a érintett diák azonosításához, mielőtt szerkesztené az elrendezést.
Mi történik, ha eltávolítok egy még használatban lévő elrendezést?
Az Aspose.Slides egy PptxEditException kivételt dob. Először rendelje át a függő diákat, vagy használja a removeUnusedLayoutSlides metódust, hogy csak a nem hivatkozott elrendezéseket távolítsa el.









