Diaelrendezések alkalmazása vagy módosítása Pythonban

Áttekintés

A diaelrendezés meghatározza a helyőrzők, például címek, szövegek, képek, diagramok és táblák pozícióját és formázását. Egy elrendezés alkalmazása következetes szerkezetet ad a diákhoz, miközben minden dia saját tartalmát tartalmazhatja.

A leggyakoribb elrendezések:

  • Címlap: Cím és alcím helyőrzőket tartalmaz.
  • Cím és tartalom: Cím helyőrzőt és általános célú tartalom helyőrzőt tartalmaz.
  • Üres: Nem tartalmaz tartalomhelyőrzőket, és akkor hasznos, ha minden alakzatot manuálisan helyezünk el.

A layout öröklődésének megértése

Egy prezentációnak három kapcsolódó szintje van:

  1. A master slide meghatározza a témát, a megosztott formázást, a hátteret és a közös objektumokat.
  2. A layout slide egy mesterhez tartozik, és egy adott helyőrző-eloszlást definiál.
  3. A normal slide egy elrendezést használ, és tárolja a diához megadott tartalmat.

Egy normál dia a témát és a formázást örökli az elrendezéséből, az elrendezés pedig a mesterből. Egy normál dián közvetlenül beállított érték felülírja az örökölt értéket az adott szinten. Amikor egy normál diát hozunk 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.

Adjunk szükséges helyőrzőket egy elrendezéshez, mielőtt diákat hoznánk létre belőle. Egy helyőrző későbbi hozzáadása egy elrendezéshez nem ad automatikusan hozzá 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 egy már létező helyőrző geometria módosítása minden attól függő diát frissíthet. Mielőtt egy már használatban lévő elrendezést szerkesztenénk, ellenőrizzük a függő diák listáját, és tekintsük át a kapott prezentációt.
  • Egy elrendezést, amelyet még használ egy dia, nem lehet eltávolítani. Először rendeljük át a függő diákat egy másik elrendezéshez, vagy csak a nem használt elrendezéseket távolítsuk el.

A hierarchia legfelső szintjéről további információ a Slide Master oldalon található.

Diaelrendezés kiválasztása és alkalmazása

Használjunk elrendezéstípusokat, ha a prezentáció a szabványos PowerPoint elrendezésdefiníciókat követi. Az elrendezésneveket a felhasználó szerkesztheti és lokalizálhatja, ezért a név alapú kiválasztás kevésbé megbízható, hacsak nem kontrolláljuk a forrás‑sablont.

Az alábbi példa a Cím és tartalom elrendezést keresi az első mesterben. Ha ez az elrendezés nem érhető el, szándékosan 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 a Slide.layout_slide tulajdonságon keresztül alkalmazzuk az első normál diára.

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    layout_slides = presentation.masters[0].layout_slides
    target_layout = layout_slides.get_by_type(slides.SlideLayoutType.TITLE_AND_OBJECT)

    if target_layout is None:
        target_layout = layout_slides.get_by_type(slides.SlideLayoutType.BLANK)

    if target_layout is None:
        raise RuntimeError("The first master does not contain a suitable layout slide.")

    presentation.slides[0].layout_slide = target_layout
    presentation.save("output-with-new-layout.pptx", slides.export.SaveFormat.PPTX)

Egy dia elrendezésének módosítása nem távolítja el az a diára közvetlenül hozzáadott szokásos alakzatokat. Ugyanakkor a helyőrző pozíciók, az örökölt formázás és a meglévő helyőrzők megfelelősége az új elrendezéshez változhat, ezért ellenőrizzük a kimenetet, ha jelentősen eltérő elrendezések között váltunk.

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. Elrendezés létrehozásához hívjuk a MasterLayoutSlideCollection.add metódust a cél‑mester elrendezésgyűjteményén.

Az alábbi 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 hoz létre. Az elrendezésneveknek egyedieknek kell lenniük a gyűjteményen belül.

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    master_slide = presentation.masters[0]
    report_layout = master_slide.layout_slides.add(slides.SlideLayoutType.TITLE_AND_OBJECT, "Report Title and Content")
    presentation.slides.add_empty_slide(report_layout)

    presentation.save("output-with-report-layout.pptx", slides.export.SaveFormat.PPTX)

Csak akkor adjunk elrendezést, ha a sablon valóban igényel egy új újrahasználható struktúrát. Ha már létezik megfelelő elrendezés, válasszuk ki és használjuk újra, a duplikálás helyett.

Helyőrzők hozzáadása egy elrendezésdhióhoz

A LayoutSlide.placeholder_manager tulajdonság egy LayoutPlaceholderManager objektumot biztosít a helyőrző‑alakzatok elrendezéshez való hozzáadásához.

PowerPoint helyőrzó LayoutPlaceholderManager metódus
Tartalom add_content_placeholder(x, y, width, height)
Tartalom (függőleges) add_vertical_content_placeholder(x, y, width, height)
Szöveg add_text_placeholder(x, y, width, height)
Szöveg (függőleges) add_vertical_text_placeholder(x, y, width, height)
Kép add_picture_placeholder(x, y, width, height)
Diagram add_chart_placeholder(x, y, width, height)
Táblázat add_table_placeholder(x, y, width, height)
SmartArt add_smart_art_placeholder(x, y, width, height)
Média add_media_placeholder(x, y, width, height)
Online kép add_online_image_placeholder(x, y, width, height)

Az alábbi példa ellenőrzi, hogy a Üres elrendezés létezik-e, négy helyőrzőt ad hozzá, majd egy normál diát hoz létre, 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 adjuk hozzá, így az Aspose.Slides a megfelelő helyőrző‑alakzatokat tudja generálni azon a dián.

import aspose.slides as slides

with slides.Presentation() as presentation:
    blank_layout = presentation.layout_slides.get_by_type(slides.SlideLayoutType.BLANK)

    if blank_layout is None:
        raise RuntimeError("The presentation does not contain a Blank layout slide.")

    placeholder_manager = blank_layout.placeholder_manager
    placeholder_manager.add_content_placeholder(20, 20, 310, 270)
    placeholder_manager.add_vertical_text_placeholder(350, 20, 350, 270)
    placeholder_manager.add_chart_placeholder(20, 310, 310, 180)
    placeholder_manager.add_table_placeholder(350, 310, 350, 180)

    presentation.slides.add_empty_slide(blank_layout)
    presentation.save("output-with-placeholders.pptx", slides.export.SaveFormat.PPTX)

Az eredmény:

A helyőrzők az elrendezésdién

Nem használt elrendezésdiák eltávolítása

Használja a Compress.remove_unused_layout_slides metódust a olyan elrendezések eltávolításához, amelyre egyetlen normál dia sem hivatkozik. A metódus érintetlenül hagyja azon elrendezéseket, amelyek még használatban vannak.

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    slides.lowcode.Compress.remove_unused_layout_slides(presentation)
    presentation.save("output-without-unused-layouts.pptx", slides.export.SaveFormat.PPTX)

Egy konkrét elrendezés eltávolításához először ellenőrizze annak has_depending_slides tulajdonságát vagy get_depending_slides metódusát. A LayoutSlide.remove hívása előtt rendelje át a függő diákat. Egy használt elrendezés eltávolítása PptxEditException kivételt eredményez.

Lábléc láthatóságának vezérlése egy elrendezésdián

Egy elrendezésnek saját lábléce, dia‑száma és dátum‑idő helyőrzői vannak. Használja a LayoutSlide.header_footer_manager tulajdonságot ezeknek a helyőrzőknek a vezérléséhez egy adott elrendezés esetén. Ez akkor hasznos, ha például a tartalom‑elrendezéseknek láblécük van, a címlapoknak pedig nincs.

Az alábbi példa biztonságosan kiválaszt egy elrendezést, és láthatóvá teszi annak lábléc‑elemeit:

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    layout_slide = presentation.layout_slides.get_by_type(slides.SlideLayoutType.TITLE_AND_OBJECT)

    if layout_slide is None:
        layout_slide = presentation.layout_slides.get_by_type(slides.SlideLayoutType.BLANK)

    if layout_slide is None:
        raise RuntimeError("The presentation does not contain a suitable layout slide.")

    header_footer_manager = layout_slide.header_footer_manager
    header_footer_manager.set_footer_visibility(True)
    header_footer_manager.set_slide_number_visibility(True)
    header_footer_manager.set_date_time_visibility(True)
    header_footer_manager.set_footer_text("Footer text")
    header_footer_manager.set_date_time_text("Date and time text")

    presentation.save("output-with-layout-footers.pptx", slides.export.SaveFormat.PPTX)

Lábléc láthatóságának vezérlése egy mesteren és annak gyermek‑elrendezésein

A konzisztens lábléc‑beállítások alkalmazásához a mesterhierarchiában használja a MasterSlide.header_footer_manager tulajdonságot. A MasterSlideHeaderFooterManager terjesztési metódusai a mesterre, annak függő elrendezésdiákra és a normál diákra hatnak; nem csak egyetlen normál diára céloznak.

import aspose.slides as slides

with slides.Presentation("input.pptx") as presentation:
    header_footer_manager = presentation.masters[0].header_footer_manager
    header_footer_manager.set_footer_and_child_footers_visibility(True)
    header_footer_manager.set_slide_number_and_child_slide_numbers_visibility(True)
    header_footer_manager.set_date_time_and_child_date_times_visibility(True)
    header_footer_manager.set_footer_and_child_footers_text("Footer text")
    header_footer_manager.set_date_time_and_child_date_times_text("Date and time text")

    presentation.save("output-with-master-footers.pptx", slides.export.SaveFormat.PPTX)

GYIK

Mi a különbség a Master Slide és a Layout Slide között?

A master slide meghatározza a prezentáció témáját és a megosztott formázást. A layout slide egy mesterhez tartozik, és egy újrahasználható helyőrző‑elrendezést definiál. A normál diákok ezeket az elrendezéseket használják, és a diához specifikus tartalmat tárolják.

Másolhatok Layout Slide‑t egy prezentációból egy másikba?

Igen. Használja a add_clone metódust a célgyűjteményhez való másoláshoz. Másoláskor ellenőrizze 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 egy már használatban lévő elrendezést módosítok?

A függő diák öröklik az elrendezésváltozásokat, hacsak nem írják felül a érintett formázást vagy objektumokat helyben. A helyőrzők geometriai jellege és az örökölt stílus ezért sok dián egyszerre megváltozhat. Használja a get_depending_slides metódust, hogy szerkesztés előtt azonosítsa az érintett diák listáját.

Mi történik, ha eltávolítok egy még használatban lévő elrendezést?

Az Aspose.Slides PptxEditException kivételt dob. Először rendelje át a függő diákat, vagy használja a remove_unused_layout_slides metódust, hogy csak a nem hivatkozott elrendezéseket távolítsa el.