Dia elrendezések alkalmazása vagy módosítása Pythonban Java-n keresztül
Áttekintés
A dia elrendezése meghatározza a helyőrzők, például a címek, szöveg, képek, diagramok és táblázatok pozícióit és formázását. Egy elrendezés alkalmazása következetes szerkezetet biztosít a diák számára, miközben minden dia saját tartalmát tartalmazhatja.
A leggyakoribb elrendezések a következők:
- Title Slide: Cím és alcím helyőrzőket tartalmaz.
- Title and Content: Cím helyőrzőt és egy általános célú tartalomhelyőrzőt tartalmaz.
- Blank: Nem tartalmaz tartalomhelyőrzőket, és akkor hasznos, ha minden alakzatot kézzel helyezünk el.
Az elrendezés öröklődésének megértése
Egy bemutatónak három összefüggő szintje van:
- A master slide meghatározza a témát, a közös formázást, a háttérképeket és a közös objektumokat.
- A layout slide egy masterhez tartozik, és egy adott helyőrző elrendezést határoz meg.
- A normal slide egy elrendezést használ, és a diára beírt tartalmat tárolja.
Egy normal slide a témát és a formázást a saját elrendezésétől örökli, az elrendezés pedig a masterétől. A normal slide-on közvetlenül beállított érték felülírja az örökölt értéket azon a szinten. Amikor egy normal slide létrejön, a helyőrző alakzatok a kiválasztott elrendezésből generálódnak, míg a helyőrzőkbe beírt tartalom a normal slide-hoz tartozik.
Adjon hozzá a szükséges helyőrzőket az elrendezéshez, mielőtt diák létrehozására használná. Az elrendezéshez később hozzáadott további helyőrző nem ad hozzá automatikusan megfelelő helyőrző alakzatot a már létező normal slide-okra.
Ennek a kapcsolatnak két fontos következménye van:
- A layouton végzett örökölt formázás vagy meglévő helyőrző geometria módosítása frissítheti az összes attól függő diát. Mielőtt szerkesztenénk egy már használatban lévő elrendezést, ellenőrizzük a függő diákot, és tekintsük át az eredményes bemutatót.
- Olyan elrendezést, amelyet még használ egy dia, nem lehet eltávolítani. Először rendelje át a függő diákat egy másik elrendezéshez, vagy csak a nem használt elrendezéseket távolítsa el.
További információkért a hierarchia felső szintjéről lásd a Slide Master oldalt.
Diaelrendezés kiválasztása és alkalmazása
Használjon elrendezéstípust, ha a bemutató a szabványos PowerPoint elrendezésdefiníciókat követi. Az elrendezés nevei felhasználó által szerkeszthetők és lokalizálhatók, így a név alapján történő kiválasztás kevésbé megbízható, hacsak nem szabályozza a forrás sablont.
A következő példa az első masteren a Title and Content elrendezést keresi. Ha az elrendezés nem elérhető, szándékosan a Blank elrendezésre tér vissza. A második None ellenőrzés szükséges, mert egy bemutató csak egyéni elrendezéseket tartalmazhat. A kiválasztott elrendezést ezután a Slide.setLayoutSlide metódussal alkalmazzák az első normal slide-ra.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SlideLayoutType
presentation = Presentation("input.pptx")
try:
layout_slides = presentation.getMasters().get_Item(0).getLayoutSlides()
target_layout = layout_slides.getByType(SlideLayoutType.TitleAndObject)
if target_layout is None:
target_layout = layout_slides.getByType(SlideLayoutType.Blank)
if target_layout is None:
print("The first master does not contain a suitable layout slide.")
else:
presentation.getSlides().get_Item(0).setLayoutSlide(target_layout)
presentation.save("output-with-new-layout.pptx", 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 szokásos 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, amikor jelentősen eltérő elrendezések között vált.
Elrendezésdia 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 MasterLayoutSlideCollection.add metódust a cél master elrendezésgyűjteményén.
A következő példa mindig egy új Title and Content elrendezést ad hozzá Report Title and Content néven, majd egy normal slide-ot hoz létre ezen alapulva. Az elrendezésneveknek egyedieknek kell lenniük a gyűjteményen belül.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SlideLayoutType
presentation = Presentation("input.pptx")
try:
master_slide = presentation.getMasters().get_Item(0)
report_layout = master_slide.getLayoutSlides().add(SlideLayoutType.TitleAndObject, "Report Title and Content")
presentation.getSlides().addEmptySlide(report_layout)
presentation.save("output-with-report-layout.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Csak akkor adjon hozzá elrendezést, ha a sablon ténylegesen egy másik újrahasználható struktúrát igényel. Ha már létezik megfelelő elrendezés, válassza ki és használja újra a duplikálás helyett.
Helyőrzők hozzáadása egy elrendezésdiához
A LayoutSlide.getPlaceholderManager metódus egy LayoutPlaceholderManager objektumot biztosít a helyőrző alakzatok elrendezéshez való hozzáadásához.
A következő példa ellenőrzi, hogy a Blank elrendezés létezik, négy helyőrzőt ad hozzá, majd egy módosított elrendezést használó normal slide-ot hoz létre. A sorrend szándékos: a helyőrzőket a normal slide létrehozása előtt adják hozzá, így az Aspose.Slides a megfelelő helyőrző alakzatokat generálja azon a dián.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SlideLayoutType
presentation = Presentation()
try:
blank_layout = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank)
if blank_layout is None:
print("The presentation does not contain a Blank layout slide.")
else:
placeholder_manager = blank_layout.getPlaceholderManager()
placeholder_manager.addContentPlaceholder(20, 20, 310, 270)
placeholder_manager.addVerticalTextPlaceholder(350, 20, 350, 270)
placeholder_manager.addChartPlaceholder(20, 310, 310, 180)
placeholder_manager.addTablePlaceholder(350, 310, 350, 180)
presentation.getSlides().addEmptySlide(blank_layout)
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éshelyőrzők geometriai módosítása befolyásolhatja a függő diákat. Az újból hozzáadott elrendezéshelyőrző nem lesz visszatöltve a már létező normal slide-okra. Tesztelje az elrendezés módosításait a bemutató egy másolatán, és ellenőrizze minden függő diát.Használaton kívüli elrendezésdiák eltávolítása
Használja a Compress.removeUnusedLayoutSlides metódust a olyan elrendezések eltávolításához, amelyeket egyetlen normal slide sem hivatkozik. A metódus érintetlenül hagyja a még használatban lévő elrendezéseket.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Compress, Presentation, SaveFormat
presentation = Presentation("input.pptx")
try:
Compress.removeUnusedLayoutSlides(presentation)
presentation.save("output-without-unused-layouts.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Egy adott elrendezés eltávolításához először használja a hasDependingSlides vagy a getDependingSlides metódust. A LayoutSlide.remove hívása előtt rendelje át a függő diákat. Egy használatban lévő elrendezés eltávolításának kísérlete PptxEditException kivételt dob.
Lábléc láthatóságának szabályozása egy elrendezésdián
Egy elrendezésnek saját lábléc, dia-szám és dátum-idő helyőrzői vannak. Használja a LayoutSlide.getHeaderFooterManager metódust ezeknek a helyőrzőknek a szabályozásához egy adott elrendezésen. Ez hasznos például, ha a tartalomelrendezéseknek láblécet kell megjeleníteni, a címelrendezéseknek pedig nem.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SlideLayoutType
presentation = Presentation("input.pptx")
try:
layout_slide = presentation.getLayoutSlides().getByType(SlideLayoutType.TitleAndObject)
if layout_slide is None:
layout_slide = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank)
if layout_slide is None:
print("The presentation does not contain a suitable layout slide.")
else:
header_footer_manager = layout_slide.getHeaderFooterManager()
header_footer_manager.setFooterVisibility(True)
header_footer_manager.setSlideNumberVisibility(True)
header_footer_manager.setDateTimeVisibility(True)
header_footer_manager.setFooterText("Footer text")
header_footer_manager.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 szabályozása a masteren és annak gyermekelrendezésein
Az egységes lábléc beállítások mesterhierarchiában történő alkalmazásához használja a MasterSlide.getHeaderFooterManager metódust. A MasterSlideHeaderFooterManager terjesztési metódusai a masteren, annak függő elrendezésdiáin és normal slide-okon működnek; nem egyetlen normal slide-ra irányulnak.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("input.pptx")
try:
header_footer_manager = presentation.getMasters().get_Item(0).getHeaderFooterManager()
header_footer_manager.setFooterAndChildFootersVisibility(True)
header_footer_manager.setSlideNumberAndChildSlideNumbersVisibility(True)
header_footer_manager.setDateTimeAndChildDateTimesVisibility(True)
header_footer_manager.setFooterAndChildFootersText("Footer text")
header_footer_manager.setDateTimeAndChildDateTimesText("Date and time text")
presentation.save("output-with-master-footers.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
FAQ
Mi a különbség a master slide és a layout slide között?
Egy master slide meghatározza a bemutató témáját és a közös formázást. Egy layout slide a masterhez tartozik, és egy újrahasználható helyőrzőelrendezést definiál. A normal slide-ok ezeket az elrendezéseket használják, és a diához specifikus tartalmat tárolják.
Másolhatok-e egy layout slide-ot egy bemutatóból egy másikba?
Igen. A addClone metódussal adjon hozzá egy másolatot a célgyűjteményhez. Bemutatók közti másolásnál ellenőrizze a betűtípusokat, témákat, képeket és egyéb forrásokat, amelyeket a forrás elrendezés használ.
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 módosításait, hacsak helyileg felül nem írják az érintett formázást vagy objektumokat. A helyőrző geometria és az örökölt stílus ezért egyszerre sok dián változhat. Használja a getDependingSlides metódust a érintett diák azonosításához az elrendezés szerkesztése előtt.
Mi történik, ha egy még használatban lévő elrendezést eltávolítok?
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.









