SmartArt in PowerPoint-Präsentationen mit Python verwalten
Übersicht
SmartArt ist ein PowerPoint‑Diagramm, das aus Knoten, Knotformen und einem Layout besteht. Mit Aspose.Slides for Python via .NET können Sie SmartArt erstellen, Text aus seinen Knoten lesen, das Layout ändern, versteckte Knoten untersuchen, Layouts für Organigramme konfigurieren und Bild‑Organigramme erstellen.
Text aus einem SmartArt-Objekt abrufen
Ein SmartArt‑Knoten kann ein oder mehrere Formen enthalten. Um den sichtbaren Text zu lesen, iterieren Sie über SmartArt.all_nodes, dann lesen Sie den TextFrame zurückgegeben von SmartArtShape.text_frame.
import aspose.slides as slides
import aspose.slides.smartart as smartart
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
shape = slide.shapes[0]
if isinstance(shape, smartart.SmartArt):
smart_art = shape
for smart_art_node in smart_art.all_nodes:
for smart_art_shape in smart_art_node.shapes:
if smart_art_shape.text_frame is not None:
print(smart_art_shape.text_frame.text)
Layouttyp eines SmartArt-Objekts ändern
Das SmartArt‑Layout bestimmt, wie Knoten angeordnet und verbunden werden. Das folgende Beispiel erstellt ein SmartArt‑Objekt mit dem SmartArtLayoutType BASIC_BLOCK_LIST‑Wert, ändert es auf den BASIC_PROCESS‑Wert und speichert die Präsentation.
import aspose.slides as slides
import aspose.slides.smartart as smartart
with slides.Presentation() as presentation:
smart_art = presentation.slides[0].shapes.add_smart_art(
10, 10, 400, 300, smartart.SmartArtLayoutType.BASIC_BLOCK_LIST)
smart_art.layout = smartart.SmartArtLayoutType.BASIC_PROCESS
presentation.save("ChangeSmartArtLayout_out.pptx", slides.export.SaveFormat.PPTX)
Prüfen, ob ein SmartArt‑Knoten verborgen ist
SmartArtNode.is_hidden gibt an, ob der Knoten im SmartArt‑Datenmodell verborgen ist. Verborgene Knoten können in der Struktur existieren, selbst wenn das ausgewählte Layout sie nicht als sichtbare Diagrammelemente anzeigt.
Das folgende Beispiel fügt einem SmartArt‑Objekt, das den SmartArtLayoutType RADIAL_CYCLE‑Wert verwendet, einen Knoten hinzu und prüft den verborgenen Zustand des Knotens.
import aspose.slides as slides
import aspose.slides.smartart as smartart
with slides.Presentation() as presentation:
smart_art = presentation.slides[0].shapes.add_smart_art(
10, 10, 400, 300, smartart.SmartArtLayoutType.RADIAL_CYCLE)
smart_art_node = smart_art.all_nodes.add_node()
is_hidden = smart_art_node.is_hidden
if is_hidden:
print("The node is hidden in the SmartArt data model.")
presentation.save("CheckSmartArtHiddenProperty_out.pptx", slides.export.SaveFormat.PPTX)
Organigramm-Layout abrufen oder festlegen
Für SmartArt‑Diagramme, die ein Organigramm‑Layout verwenden, definiert SmartArtNode.organization_chart_layout wie Kindknoten unter einem Elternknoten angeordnet werden. Beispielsweise können Sie Kindknoten links, rechts oder an beiden Seiten hängen lassen, je nach dem ausgewählten OrganizationChartLayoutType.
Das folgende Beispiel erstellt ein Organigramm und legt das Layout für den ersten Knoten auf den OrganizationChartLayoutType LEFT_HANGING‑Wert fest.
import aspose.slides as slides
import aspose.slides.smartart as smartart
with slides.Presentation() as presentation:
smart_art = presentation.slides[0].shapes.add_smart_art(
10, 10, 400, 300, smartart.SmartArtLayoutType.ORGANIZATION_CHART)
root_node = smart_art.nodes[0]
root_node.organization_chart_layout = smartart.OrganizationChartLayoutType.LEFT_HANGING
presentation.save("OrganizationChartLayout_out.pptx", slides.export.SaveFormat.PPTX)
Ein Bild‑Organigramm erstellen
Ein Bild‑Organigramm ist ein SmartArt‑Layout, das für Hierarchiediagramme mit Bildplatzhaltern entwickelt wurde. Verwenden Sie den SmartArtLayoutType PICTURE_ORGANIZATION_CHART‑Wert, wenn Sie das SmartArt‑Objekt zu einer Folie hinzufügen.
import aspose.slides as slides
import aspose.slides.smartart as smartart
with slides.Presentation() as presentation:
smart_art = presentation.slides[0].shapes.add_smart_art(
0, 0, 400, 400, smartart.SmartArtLayoutType.PICTURE_ORGANIZATION_CHART)
presentation.save("PictureOrganizationChart_out.pptx", slides.export.SaveFormat.PPTX)
FAQ
Unterstützt SmartArt Spiegeln oder Umkehren für RTL‑Sprachen?
Ja. Die SmartArt.is_reversed‑Eigenschaft schaltet die Diagrammrichtung von links‑nach‑rechts zu rechts‑nach‑links um, oder zurück, wenn das ausgewählte SmartArt‑Layout eine Umkehrung unterstützt.
Wie kann ich SmartArt auf dieselbe Folie oder in eine andere Präsentation kopieren und dabei die Formatierung beibehalten?
Sie können die SmartArt‑Form mit ShapeCollection.add_clone oder die gesamte Folie, die das SmartArt enthält, mit dem Klon‑Mechanismus für Folien duplizieren. Beide Ansätze bewahren Größe, Position und Formatierung.
Wie render ich SmartArt zu einem Rasterbild für Vorschau oder Web‑Export?
Rendern Sie die Folie oder die gesamte Präsentation zu PNG oder JPEG. SmartArt wird dabei als Teil der Folie gerendert.
Wie kann ich ein bestimmtes SmartArt‑Objekt auf einer Folie finden, wenn mehrere vorhanden sind?
Setzen Sie einen eindeutigen Shape.alternative_text‑ oder Shape.name‑Wert auf die SmartArt‑Form, suchen Sie diesen Wert in Slide.shapes, und prüfen Sie dann, dass die gefundene Form ein SmartArt ist.