Folienlayouts in Python anwenden oder ändern

Übersicht

Ein Folienlayout definiert die Anordnung von Platzhalterboxen und die Formatierung für den Inhalt einer Folie. Es steuert, welche Platzhalter verfügbar sind und wo sie angezeigt werden. Folienlayouts helfen Ihnen, Präsentationen schnell und konsistent zu gestalten – egal, ob Sie etwas Einfaches oder Komplexeres erstellen. Zu den häufigsten Folienlayouts in PowerPoint gehören:

Titel‑Folienlayout – Enthält zwei Textplatzhalter: einen für den Titel und einen für den Untertitel.

Titel‑und‑Inhalt‑Layout – Enthält oben einen kleineren Titel‑Platzhalter und darunter einen größeren für den Hauptinhalt (wie Text, Aufzählungspunkte, Diagramme, Bilder und mehr).

Leeres Layout – Enthält keine Platzhalter, sodass Sie die Folie von Grund auf selbst gestalten können.

Folienlayouts sind Teil eines Folienmasters, der die Layout‑Stile für die gesamte Präsentation definiert. Sie können Layout‑Folien über den Folienmaster anhand ihres Typs, Namens oder ihrer eindeutigen ID abrufen und ändern. Alternativ können Sie ein bestimmtes Layout‑Folie direkt in der Präsentation bearbeiten.

Um mit Folienlayouts in Aspose.Slides für Python zu arbeiten, können Sie verwenden:

Folienlayouts zu Präsentationen hinzufügen

Um das Aussehen und die Struktur Ihrer Folien anzupassen, müssen Sie möglicherweise neue Layout‑Folien zu einer Präsentation hinzufügen. Aspose.Slides für Python ermöglicht es Ihnen, zu prüfen, ob ein bestimmtes Layout bereits existiert, bei Bedarf ein neues hinzuzufügen und es zum Einfügen von Folien basierend auf diesem Layout zu verwenden.

  1. Erstellen Sie eine Instanz der Klasse Presentation.
  2. Greifen Sie auf die MasterLayoutSlideCollection zu.
  3. Prüfen Sie, ob die gewünschte Layout‑Folie bereits in der Sammlung vorhanden ist. Falls nicht, fügen Sie das benötigte Layout hinzu.
  4. Fügen Sie eine leere Folie basierend auf dem neuen Layout hinzu.
  5. Speichern Sie die Präsentation.

Der folgende Python‑Code demonstriert, wie ein Folienlayout zu einer PowerPoint‑Präsentation hinzugefügt wird:

import aspose.slides as slides

# Instanziieren Sie die Presentation-Klasse, um die Präsentationsdatei zu öffnen.
with slides.Presentation("sample.pptx") as presentation:
    # Durchlaufen Sie die Layout-Folientypen, um eine Layout-Folie auszuwählen.
    layout_slides = presentation.masters[0].layout_slides
    layout_slide = layout_slides.get_by_type(slides.SlideLayoutType.TITLE_AND_OBJECT)
    if layout_slide is None:
         layout_slide = layout_slides.get_by_type(slides.SlideLayoutType.TITLE)

    if layout_slide is None:
        # Eine Situation, in der die Präsentation nicht alle Layout-Typen enthält.
        # Die Präsentationsdatei enthält nur leere und benutzerdefinierte Layout-Typen.
        # Allerdings können Layout-Folien mit benutzerdefinierten Typen erkennbare Namen haben,
        # wie "Titel", "Titel und Inhalt" usw., die für die Auswahl von Layout-Folien verwendet werden können.
        # Sie können sich auch auf eine Menge von Platzhalter-Formtypen verlassen.
        # Zum Beispiel sollte eine Titelfolie nur den Titel-Platzhaltertyp besitzen, usw.
        for title_and_object_layout_slide in layout_slides:
            if title_and_object_layout_slide.name == "Title and Object":
                layout_slide = title_and_object_layout_slide
                break

        if layout_slide is None:
            for title_layout_slide in layout_slides:
                if title_layout_slide.name == "Title":
                    layout_slide = title_layout_slide
                    break

            if layout_slide is None:
                layout_slide = layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
                if layout_slide is None:
                    layout_slide = layout_slides.Add(slides.SlideLayoutType.TITLE_AND_OBJECT, "Title and Object")

    # Fügen Sie eine leere Folie mit der hinzugefügten Layout-Folie ein.
    presentation.slides.insert_empty_slide(0, layout_slide)

    # Speichern Sie die Präsentation auf dem Datenträger.
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

Unbenutzte Layout‑Folien entfernen

Aspose.Slides stellt die Methode remove_unused_layout_slides der Klasse Compress bereit, um nicht benötigte Layout‑Folien zu löschen.

Der folgende Python‑Code zeigt, wie eine Layout‑Folie aus einer PowerPoint‑Präsentation entfernt wird:

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    slides.lowcode.Compress.remove_unused_layout_slides(presentation)
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

Platzhalter zu Folienlayouts hinzufügen

Aspose.Slides bietet die Eigenschaft LayoutSlide.placeholder_manager, mit der Sie neue Platzhalter zu einer Layout‑Folie hinzufügen können.

Dieser Manager enthält Methoden für die folgenden Platzhaltertypen:

PowerPoint‑Platzhalter LayoutPlaceholderManager Methode
Content add_content_placeholder(x: float, y: float, width: float, height: float)
Content (Vertical) add_vertical_content_placeholder(x: float, y: float, width: float, height: float)
Text add_text_placeholder(x: float, y: float, width: float, height: float)
Text (Vertical) add_vertical_text_placeholder(x: float, y: float, width: float, height: float)
Picture add_picture_placeholder(x: float, y: float, width: float, height: float)
Chart add_chart_placeholder(x: float, y: float, width: float, height: float)
Table add_table_placeholder(x: float, y: float, width: float, height: float)
SmartArt add_smart_art_placeholder(x: float, y: float, width: float, height: float)
Media add_media_placeholder(x: float, y: float, width: float, height: float)
Online Image add_online_image_placeholder(x: float, y: float, width: float, height: float)

Der folgende Python‑Code demonstriert, wie neue Platzhalterformen zur Blank‑Layout‑Folie hinzugefügt werden:

import aspose.slides as slides

with slides.Presentation() as presentation:
    # Holen Sie die leere Layout-Folie.
    layout = presentation.layout_slides.get_by_type(slides.SlideLayoutType.BLANK)

    # Holen Sie den Platzhalter-Manager der Layout-Folie.
    placeholder_manager = layout.placeholder_manager

    # Fügen Sie verschiedene Platzhalter zur leeren Layout-Folie hinzu.
    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)

    # Fügen Sie eine neue Folie mit dem leeren Layout hinzu.
    new_slide = presentation.slides.add_empty_slide(layout)

    presentation.save("placeholders.pptx", slides.export.SaveFormat.PPTX)

Das Ergebnis:

The placeholders on the layout slide

Fußzeilen‑Sichtbarkeit für ein Layout‑Folie festlegen

In PowerPoint‑Präsentationen können Fußzeilenelemente wie Datum, Foliennummer und benutzerdefinierter Text je nach Layout angezeigt oder ausgeblendet werden. Aspose.Slides für Python erlaubt es Ihnen, die Sichtbarkeit dieser Fußzeilen‑Platzhalter zu steuern. Das ist nützlich, wenn bestimmte Layouts Fußzeileninformationen zeigen sollen, während andere schlicht bleiben.

  1. Erstellen Sie eine Instanz der Klasse Presentation.
  2. Holen Sie sich einen Layout‑Folie‑Verweis über dessen Index.
  3. Setzen Sie den Fußzeilen‑Platzhalter der Folie auf sichtbar.
  4. Setzen Sie den Foliennummer‑Platzhalter auf sichtbar.
  5. Setzen Sie den Datum‑Zeit‑Platzhalter auf sichtbar.
  6. Speichern Sie die Präsentation.

Der folgende Python‑Code zeigt, wie die Sichtbarkeit einer Folienfußzeile festgelegt wird:

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    header_footer_manager = presentation.layout_slides[0].header_footer_manager

    if not header_footer_manager.is_footer_visible: 
        header_footer_manager.set_footer_visibility(True) 

    if not header_footer_manager.is_slide_number_visible:  
        header_footer_manager.set_slide_number_visibility(True) 

    if not header_footer_manager.is_date_time_visible: 
        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.ppt", slides.export.SaveFormat.PPT)

Kind‑Fußzeilen‑Sichtbarkeit für eine Folie festlegen

In PowerPoint‑Präsentationen können Fußzeilenelemente wie Datum, Foliennummer und benutzerdefinierter Text auf der Ebene des Folienmasters gesteuert werden, um Konsistenz über alle Layout‑Folien hinweg zu gewährleisten. Aspose.Slides für Python ermöglicht es Ihnen, die Sichtbarkeit und den Inhalt dieser Fußzeilen‑Platzhalter auf dem Master‑Folie festzulegen und diese Einstellungen an alle untergeordneten Layout‑Folien weiterzugeben. So bleibt die Fußzeileninformation in der gesamten Präsentation einheitlich.

  1. Erstellen Sie eine Instanz der Klasse Presentation.
  2. Holen Sie sich einen Verweis auf die Master‑Folie über deren Index.
  3. Setzen Sie die Fußzeilen‑Platzhalter des Masters und aller Kind‑Folien auf sichtbar.
  4. Setzen Sie die Foliennummer‑Platzhalter des Masters und aller Kind‑Folien auf sichtbar.
  5. Setzen Sie die Datum‑Zeit‑Platzhalter des Masters und aller Kind‑Folien auf sichtbar.
  6. Speichern Sie die Präsentation.

Der folgende Python‑Code demonstriert diesen Vorgang:

import aspose.slides as slides

with slides.Presentation("presentation.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.pptx", slides.export.SaveFormat.PPTX)

FAQ

Was ist der Unterschied zwischen einer Master‑Folie und einer Layout‑Folie?

Eine Master‑Folie definiert das Gesamtdesign und die Standardformatierung, während Layout‑Folien spezifische Anordnungen von Platzhaltern für verschiedene Inhaltsarten festlegen.

Kann ich eine Layout‑Folie von einer Präsentation in eine andere kopieren?

Ja, Sie können eine Layout‑Folie aus der layout_slides‑Sammlung einer Präsentation klonen und mit der Methode add_clone in eine andere einfügen.

Was passiert, wenn ich eine Layout‑Folie lösche, die noch von einer Folie verwendet wird?

Versuchen Sie, eine Layout‑Folie zu löschen, die noch von mindestens einer Folie referenziert wird, wirft Aspose.Slides eine PptxEditException. Verwenden Sie stattdessen remove_unused_layout_slides, um nur nicht genutzte Layout‑Folien sicher zu entfernen.