SmartArt in PowerPoint‑Präsentationen mit Python verwalten

Übersicht

Dieser Leitfaden zeigt, wie Sie SmartArt in Aspose.Slides für Python erstellen und manipulieren. Sie lernen, wie Sie Text aus SmartArt extrahieren (einschließlich TextFrame‑Inhalt in Knotformen), SmartArt zu Folien hinzufügen und das Layout wechseln, versteckte Knoten erkennen und handhaben, Organisations‑Chart‑Layouts konfigurieren und Bild‑Organisations‑Charts erstellen — alles mit knappen, kopier‑und‑einfügbaren Python‑Beispielen, die eine Presentation öffnen, mit Folien und SmartArt‑Knoten arbeiten und die Ergebnisse als PPTX speichern.

Text aus SmartArt abrufen

Die text_frame‑Eigenschaft des SmartArtShape ermöglicht das Abrufen des gesamten Textes aus einer SmartArt‑Form – nicht nur des Textes, der in ihren Knoten enthalten ist. Der folgende Beispielcode zeigt, wie man Text aus einem SmartArt‑Knoten erhält.

import aspose.slides as slides

with slides.Presentation("SmartArt.pptx") as presentation:
    slide = presentation.slides[0]
    smart_art = slide.shapes[0]

    for smart_art_node in smart_art.all_nodes:
        for node_shape in smart_art_node.shapes:
            if node_shape.text_frame is not None:
                print(node_shape.text_frame.text)

SmartArt‑Layouttyp ändern

Um den SmartArt‑Layouttyp zu ändern, gehen Sie wie folgt vor:

  1. Erstellen Sie eine Instanz der Presentation‑Klasse.
  2. Holen Sie sich eine Referenz auf eine Folie anhand ihres Index.
  3. Fügen Sie eine SmartArt‑Form mit dem Layout BASIC_BLOCK_LIST hinzu.
  4. Ändern Sie ihr Layout zu BASIC_PROCESS.
  5. Speichern Sie die Präsentation als PPTX‑Datei.
import aspose.slides as slides
import aspose.slides.smartart as smartart

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # Füge eine SmartArt-Form mit dem Layout BASIC_BLOCK_LIST hinzu.
    smart = slide.shapes.add_smart_art(10, 10, 400, 300, smartart.SmartArtLayoutType.BASIC_BLOCK_LIST)

    # Ändere den Layouttyp zu BASIC_PROCESS.
    smart.layout = smartart.SmartArtLayoutType.BASIC_PROCESS

    # Speichere die Präsentation.
    presentation.save("ChangedSmartArtLayout.pptx", slides.export.SaveFormat.PPTX)

Versteckte Eigenschaft von SmartArt prüfen

Die SmartArtNode.is_hidden‑Eigenschaft gibt True zurück, wenn der Knoten im Datenmodell ausgeblendet ist. Um zu prüfen, ob ein SmartArt‑Knoten ausgeblendet ist, gehen Sie wie folgt vor:

  1. Erstellen Sie eine Instanz der Presentation‑Klasse.
  2. Fügen Sie eine SmartArt‑Form mit dem Layout RADIAL_CYCLE hinzu.
  3. Fügen Sie der SmartArt einen Knoten hinzu.
  4. Prüfen Sie die is_hidden‑Eigenschaft.
import aspose.slides as slides
import aspose.slides.smartart as smartart

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # Füge eine SmartArt-Form mit dem Layout RADIAL_CYCLE hinzu.
    smart = slide.shapes.add_smart_art(10, 10, 400, 300, smartart.SmartArtLayoutType.RADIAL_CYCLE)

    # Füge einen Knoten zur SmartArt hinzu.
    node = smart.all_nodes.add_node()

    # Überprüfe die is_hidden-Eigenschaft.
    if node.is_hidden:
        print("The node is hidden.")

Organisation‑Diagrammtyp erhalten oder festlegen

Die SmartArtNode.organization_chart_layout‑Eigenschaft liest oder schreibt den Organisations‑Chart‑Typ, der dem aktuellen Knoten zugeordnet ist. Um den Organisations‑Chart‑Typ zu erhalten oder festzulegen, gehen Sie wie folgt vor:

  1. Erstellen Sie eine Instanz der Presentation‑Klasse.
  2. Fügen Sie der Folie eine SmartArt‑Form hinzu.
  3. Lesen oder schreiben Sie den Organisations‑Chart‑Typ.
  4. Speichern Sie die Präsentation als PPTX‑Datei.
import aspose.slides as slides
import aspose.slides.smartart as smartart

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # Füge eine SmartArt-Form mit dem Layout ORGANIZATION_CHART hinzu.
    smart = slide.shapes.add_smart_art(10, 10, 400, 300, smartart.SmartArtLayoutType.ORGANIZATION_CHART)

    # Setze den Organization-Chart-Typ.
    smart.nodes[0].organization_chart_layout = smartart.OrganizationChartLayoutType.LEFT_HANGING

    # Speichere die Präsentation.
    presentation.save("OrganizationChartLayout.pptx", slides.export.SaveFormat.PPTX)

Bild‑Organisationsdiagramm erstellen

Aspose.Slides für Python bietet eine einfache API zum einfachen Erstellen von Bild‑Organisations‑Charts. So erstellen Sie ein Diagramm auf einer Folie:

  1. Erstellen Sie eine Instanz der Presentation‑Klasse.
  2. Holen Sie sich eine Referenz auf die Folie anhand ihres Index.
  3. Fügen Sie ein Diagramm mit den Standarddaten des gewünschten Typs hinzu.
  4. Speichern Sie die geänderte Präsentation als PPTX‑Datei.
import aspose.slides as slides
import aspose.slides.smartart as smartart

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    smart_art = slide.shapes.add_smart_art(0, 0, 400, 400, smartart.SmartArtLayoutType.PICTURE_ORGANIZATION_CHART)
    
    presentation.save("OrganizationChart.pptx", slides.export.SaveFormat.PPTX)

FAQ

Unterstützt SmartArt das Spiegeln/Umkehren für RTL‑Sprachen?

Ja. Die is_reversed‑Eigenschaft schaltet die Diagramm‑richtung (LTR/RTL) um, falls der ausgewählte SmartArt‑Typ Umkehrung unterstützt.

Wie kann ich SmartArt auf derselben Folie oder in eine andere Präsentation kopieren und dabei die Formatierung beibehalten?

Sie können die SmartArt‑Form über die Formen‑Sammlung clone the SmartArt shape (ShapeCollection.add_clone) oder die gesamte Folie, die diese Form enthält, clone the entire slide duplizieren. Beide Ansätze erhalten Größe, Position und Stil.

Wie rendere ich SmartArt zu einem Rasterbild für die Vorschau oder den Web‑Export?

Render the slide (oder die gesamte Präsentation) zu PNG/JPEG über die API, die Folien/Präsentationen in Bilder konvertiert – SmartArt wird dabei als Teil der Folie gezeichnet.

Wie kann ich programmgesteuert ein bestimmtes SmartArt auf einer Folie auswählen, wenn mehrere vorhanden sind?

Eine gängige Praxis ist die Verwendung von alternative text (Alt‑Text) oder eines name und das Suchen nach der Form anhand dieses Attributs innerhalb von Slide.shapes, dann prüfen, ob der Typ SmartArt ist. Die Dokumentation beschreibt typische Techniken zum Finden und Arbeiten mit Formen.