Prezentáció slide master-ek kezelése Pythonban
Áttekintés
A slide master meghatározza a közös tervezési beállításokat egy diárcsoport számára. Tartalmazhat közös alakzatokat, logókat, háttérképeket, szövegstílusokat, téma‑beállításokat és lábléc‑beállításokat. A PowerPointban a slide master szerkesztése a szokásos módja annak, hogy egy bemutató egységes maradjon anélkül, hogy minden dián ugyanazt a formázást ismételnénk.
Az Aspose.Slides for Python via .NET ugyanazt a modellt támogatja. Egy prezentáció egy vagy több master diát tartalmazhat, és minden master dia több elrendezésdát is tartalmazhat. A normál diák általában nem hivatkoznak közvetlenül egy master diára. Ehelyett egy normál dia egy elrendezésdiát használ, és az elrendezésdia egy master diához tartozik.
A hierarchia:
- Slide master – meghatározza a közös tervezést és a témát.
- Layout slide – meghatároz egy adott helyőrző‑elrendezést és elrendezési‑szintű formázást.
- Normal slide – a tényleges bemutatótartalmat tartalmazza, és egy elrendezésdiát használ.

Az Aspose.Slidesban egy slide master a MasterSlide osztállyal van reprezentálva. A prezentáció összes master diája a Presentation.masters gyűjteményen keresztül érhető el.
Inheritance
Amikor ugyanaz a tulajdonság több szinten is definiálva van, a specifikusabb szint nyer. Például, ha egy master dia és egy elrendezésdia is meghatároz egy hátteret, akkor az arra épülő diák az elrendezés háttérét használják. A elrendezésdiákról további információkat a Apply or Change Slide Layouts oldalon talál.A Slide Master elérése
PowerPointban a Nézet > Dia Master menüponttal nyithatja meg a Slide Master nézetet.

Az Aspose.Slidesban a masters gyűjtemény segítségével érheti el a master diákat:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
first_master_slide = presentation.masters[0]
master_slide_count = len(presentation.masters)
first_master_layout_slide_count = len(first_master_slide.layout_slides)
print("Master slides: " + str(master_slide_count))
print("Layouts in the first master: " + str(first_master_layout_slide_count))
A normál dia által használt master diát a saját elrendezésén keresztül is lekérdezheti:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
slide = presentation.slides[0]
layout_slide = slide.layout_slide
master_slide = layout_slide.master_slide
master_slide_name = master_slide.name
print(master_slide_name)
Mi található egy Slide Masterben
A master dia egy dia‑szerű objektum. A BaseSlide osztálytól örököl közös dia‑viselkedést, ezért számos, a normál és elrendezésdíáknál használt dia‑tulajdonságot is elérhetővé tesz. A master‑specifikus tagok a MasterSlide API oldalon vannak felsorolva.
Gyakran használt master dia tagok:
| Tag | Cél |
|---|---|
background |
Beállítja a master‑szintű dia hátterét. |
shapes |
A masterre helyezett alakzatokat tárolja, például logókat, képkockákat és megosztott szöveget. |
layout_slides |
A masterhez tartozó elrendezésdíákat tárolja. |
theme_manager |
Hozzáférést biztosít a master téma API‑khoz. |
header_footer_manager |
A master és annak gyermekelrendezései fejlécét, láblécét, dátumát és dia számait szabályozza. |
get_depending_slides |
Visszaadja azokat a normál diákat, amelyek elrendezésükön keresztül a masterre támaszkodnak. |
Kép hozzáadása egy Slide Masterhez
Amikor egy képet ad hozzá egy master diához, az a master‑hez tartozó elrendezéseket használó diákon is megjelenik. Ez logók, vízjelekkel, díszbannerekkel és egyéb ismétlődő vizuális elemek esetén hasznos.
Az alábbi példa egy logót ad az első master diához:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
master_slide = presentation.masters[0]
with open("logo.png", "rb") as logo_stream:
logo_bytes = logo_stream.read()
logo_image = presentation.images.add_image(logo_bytes)
master_slide.shapes.add_picture_frame(
slides.ShapeType.RECTANGLE,
20,
20,
80,
80,
logo_image)
presentation.save("presentation-with-logo.pptx", slides.export.SaveFormat.PPTX)
A képkockákról további információkat a Picture Frame oldalon talál.
Munkavégzés a helyőrzőkkel
A helyőrzőket általában az elrendezésdíákon definiálják. A master dia biztosítja a közös stílust és témát, amelyet az elrendezések örökölnek, míg minden elrendezés dönti el, hogy milyen helyőrzők állnak rendelkezésre és hová kerülnek.
PowerPointban a helyőrző‑parancsok a Slide Master nézetben érhetők el.

Új helyőrzők hozzáadásához az Aspose.Slides használatával dolgozzon a masterhez tartozó elrendezésdíával:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
master_slide = presentation.masters[0]
blank_layout_slide = master_slide.layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
if blank_layout_slide is None:
blank_layout_slide = presentation.layout_slides.add(
master_slide,
slides.SlideLayoutType.BLANK,
"Blank")
blank_layout_slide.placeholder_manager.add_text_placeholder(60, 120, 600, 80)
presentation.slides.add_empty_slide(blank_layout_slide)
presentation.save("presentation-with-placeholder.pptx", slides.export.SaveFormat.PPTX)
Már meglévő helyőrző alakzatok formázása is lehetséges egy master dián. Az alábbi példa megtalálja a címsor‑helyőrzőt és lineáris színátmenetes kitöltést alkalmaz rá:
import aspose.pydrawing as draw
import aspose.slides as slides
def find_placeholder(master_slide, placeholder_type):
for shape in master_slide.shapes:
if isinstance(shape, slides.AutoShape) and shape.placeholder is not None:
if shape.placeholder.type == placeholder_type:
return shape
return None
with slides.Presentation("presentation.pptx") as presentation:
master_slide = presentation.masters[0]
title_placeholder = find_placeholder(master_slide, slides.PlaceholderType.TITLE)
if title_placeholder is not None:
red_gradient_color = draw.Color.from_argb(255, 0, 0)
purple_gradient_color = draw.Color.from_argb(128, 0, 128)
title_placeholder.fill_format.fill_type = slides.FillType.GRADIENT
title_placeholder.fill_format.gradient_format.gradient_shape = slides.GradientShape.LINEAR
title_placeholder.fill_format.gradient_format.gradient_stops.add(0, red_gradient_color)
title_placeholder.fill_format.gradient_format.gradient_stops.add(1, purple_gradient_color)
presentation.save("presentation-title-style.pptx", slides.export.SaveFormat.PPTX)

További helyőrző- és szövegformázási lehetőségekért lásd a Set Prompt Text in Placeholder és a Text Formatting oldalakat.
Slide Master háttér módosítása
A master háttér öröklődik az elrendezésekre és a diákra, amelyik nem írja felül. Az alábbi példa egy egyszínű háttérszínt állít be az első master diára:
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
master_slide = presentation.masters[0]
master_slide.background.type = slides.BackgroundType.OWN_BACKGROUND
master_slide.background.fill_format.fill_type = slides.FillType.SOLID
master_slide.background.fill_format.solid_fill_color.color = draw.Color.forest_green
presentation.save("presentation-master-background.pptx", slides.export.SaveFormat.PPTX)
Kapcsolódó témák: Presentation Background és Presentation Theme.
Slide Master klónozása egy másik prezentációba
Használja a add_clone metódust a MasterSlideCollection osztályon, hogy egy master diát egy másik prezentációba másoljon. A másolt master ezután az új prezentáció elrendezései és diái által használható.
import aspose.slides as slides
with slides.Presentation("source.pptx") as source_presentation:
with slides.Presentation("destination.pptx") as destination_presentation:
source_master_slide = source_presentation.masters[0]
cloned_master_slide = destination_presentation.masters.add_clone(source_master_slide)
destination_presentation.save("destination-with-master.pptx", slides.export.SaveFormat.PPTX)
Ha normál diákot is klónozni kell a saját masterével együtt, lásd a Clone Slides oldalt.
Több Slide Master hozzáadása
Egy prezentáció több master diát is tartalmazhat. Ez akkor hasznos, ha különböző szakaszok különböző márkaarculatot, oldalstruktúrát vagy téma‑beállításokat igényelnek.

Az alábbi példa a visszairányított master klónozását, más háttérrel ellátását, egy üres elrendezés lekérését a klónozott master alatt, majd egy új dia hozzáadását a szóban forgó elrendezés alapján mutatja be:
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
default_master_slide = presentation.masters[0]
section_master_slide = presentation.masters.add_clone(default_master_slide)
section_master_slide.background.type = slides.BackgroundType.OWN_BACKGROUND
section_master_slide.background.fill_format.fill_type = slides.FillType.SOLID
section_master_slide.background.fill_format.solid_fill_color.color = draw.Color.light_steel_blue
section_blank_layout = section_master_slide.layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
if section_blank_layout is None:
section_blank_layout = presentation.layout_slides.add(
section_master_slide,
slides.SlideLayoutType.BLANK,
"Section Blank")
presentation.slides.add_empty_slide(section_blank_layout)
presentation.save("presentation-with-multiple-masters.pptx", slides.export.SaveFormat.PPTX)
Slide Master összehasonlítása
A master diák összehasonlíthatók a BaseSlide osztályból örökölt equals metódussal. Az összehasonlítás a szerkezetet és a statikus tartalmat (alakzatok, szöveg, formázás, animációk, egyéb dia‑beállítások) vizsgálja. Nem hasonlítja össze az egyedi azonosítókat, például a dia‑azonosítókat, vagy a dinamikus helyőrző‑értékeket, például az aktuális dátumot.
import aspose.slides as slides
with slides.Presentation("first.pptx") as first_presentation:
with slides.Presentation("second.pptx") as second_presentation:
first_presentation_master_count = len(first_presentation.masters)
second_presentation_master_count = len(second_presentation.masters)
for first_master_index in range(first_presentation_master_count):
for second_master_index in range(second_presentation_master_count):
first_master_slide = first_presentation.masters[first_master_index]
second_master_slide = second_presentation.masters[second_master_index]
are_master_slides_equal = first_master_slide.equals(second_master_slide)
if are_master_slides_equal:
print(
"first.pptx master #{} equals second.pptx master #{}".format(
first_master_index,
second_master_index))
További információkért lásd a Compare Presentation Slides oldalt.
Slide Master nézet beállítása alapértelmezett nézetnek
A prezentáció ViewProperties osztályának last_view tulajdonságával szabályozható, hogy a PowerPoint milyen nézetben nyissa meg a fájlt először. Az alábbi példa a prezentációt Slide Master nézetben nyitja meg:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
presentation.view_properties.last_view = slides.ViewType.SLIDE_MASTER_VIEW
presentation.save("presentation-master-view.pptx", slides.export.SaveFormat.PPTX)
További nézetbeállításokért lásd a Save Presentation oldalt.
Nem használt master diákok eltávolítása
Előfordulhat, hogy egy prezentáció olyan master diákat tartalmaz, amelyeket már egyetlen normál dia sem használ. A nem használt master diák eltávolítása csökkentheti a fájlméretet és egyszerűsítheti a sablonkarbantartást.
Használja a remove_unused metódust a masters gyűjteményből a nem használt master diák eltávolítására:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
presentation.masters.remove_unused(True)
presentation.save("presentation-clean.pptx", slides.export.SaveFormat.PPTX)
Alacsony‑kódszintű megoldásként használhatja a Compress osztály remove_unused_master_slides metódusát is:
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
slides.lowcode.Compress.remove_unused_master_slides(presentation)
presentation.save("presentation-clean.pptx", slides.export.SaveFormat.PPTX)
GYIK
Mi a különbség a slide master és az layout slide között?
A slide master közös tervezési beállításokat határoz meg, például témát, hátteret, közös alakzatokat és szövegstílusokat. Egy layout slide egy master diához tartozik, és egy adott helyőrző‑elrendezést definiál. Egy normál dia egy layout slide‑ot használ, így a layout és a master is öröklődik.
Tartalmazhat egy prezentáció több slide mastert is?
Igen. Egy prezentáció több slide mastert is tartalmazhat. Több master használata akkor ajánlott, ha különböző szakaszok különböző vizuális rendszereket vagy márkaarculatot igényelnek.
Hol helyezzek elhelyezőket – a master diába vagy az layout diába?
A legtöbb esetben az elrendezésdíákba helyezzen elhelyezőket. A közös vizuális elemeket és a közös formázást a master diába tegye, a tartalom helyőrzőket pedig azokra az elrendezésdíákra, amelyeket a normál diák használnak.
Törölhetem-e egy master diát, amelyet még használnak?
Nem. Egy master diát, amelynek függő diái vannak, nem lehet biztonságosan közvetlenül eltávolítani. Előbb mozgassa át azokat a diákat egy másik masterhez tartozó elrendezés alá, vagy használjon olyan tisztító módszert, amely csak a nem használt master diákat távolítja el.