Správa SmartArt v PowerPoint prezentacích pomocí Pythonu
Přehled
SmartArt je diagram v PowerPointu vytvořený z uzlů, tvarů uzlů a rozvržení. S Aspose.Slides for Python via .NET můžete vytvářet SmartArt, číst text z jeho uzlů, měnit jeho rozvržení, zkoumat skryté uzly, konfigurovat rozvržení organizačních diagramů a vytvářet obrázkové organizační diagramy.
Získání textu ze SmartArt objektu
Uzel SmartArt může obsahovat jeden nebo více tvarů. Pro přečtení viditelného textu projděte SmartArt.all_nodes, poté přečtěte TextFrame, který vrací 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)
Změna typu rozvržení SmartArt objektu
Rozvržení SmartArt řídí, jak jsou uzly uspořádány a propojeny. Následující příklad vytvoří SmartArt objekt s hodnotou SmartArtLayoutType BASIC_BLOCK_LIST, změní ji na hodnotu BASIC_PROCESS a uloží prezentaci.
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)
Kontrola, zda je uzel SmartArt skrytý
SmartArtNode.is_hidden udává, zda je uzel skrytý v datovém modelu SmartArt. Skryté uzly mohou ve struktuře existovat i tehdy, když vybrané rozvržení nezobrazuje je jako viditelné prvky diagramu.
Následující příklad přidá uzel do SmartArt objektu, který používá hodnotu SmartArtLayoutType RADIAL_CYCLE, a zkontroluje stav skrytí uzlu.
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)
Získání nebo nastavení rozvržení organizačního diagramu
Pro SmartArt diagramy, které používají rozvržení organizačního diagramu, SmartArtNode.organization_chart_layout určuje, jak jsou podřízené uzly uspořádány pod nadřazeným uzlem. Například můžete nastavit podřízené uzly tak, aby visely zleva, zprava nebo z obou stran, v závislosti na vybraném OrganizationChartLayoutType.
Následující příklad vytvoří organizační diagram a nastaví rozvržení pro první uzel na hodnotu OrganizationChartLayoutType LEFT_HANGING.
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)
Vytvoření obrázkového organizačního diagramu
Obrázkový organizační diagram je rozvržení SmartArt určené pro hierarchické diagramy, které obsahují zástupné obrázky. Při přidávání SmartArt objektu na snímek použijte hodnotu SmartArtLayoutType PICTURE_ORGANIZATION_CHART.
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)
Často kladené otázky
Podporuje SmartArt zrcadlení nebo obrácení pro RTL jazyky?
Ano. Vlastnost SmartArt.is_reversed přepíná směr diagramu z levé‑pravé na pravou‑levou, nebo zpět, pokud vybrané rozvržení SmartArt podporuje obrácení.
Jak mohu zkopírovat SmartArt na stejný snímek nebo do jiné prezentace při zachování formátování?
Můžete klonovat tvar SmartArt pomocí ShapeCollection.add_clone nebo klonovat celý snímek, který SmartArt obsahuje. Oba přístupy zachovávají velikost, umístění i formátování.
Jak mohu vykreslit SmartArt do rastrového obrázku pro náhled nebo export na web?
Vykreslete snímek nebo celou prezentaci do PNG nebo JPEG. SmartArt je vykreslen jako součást snímku.
Jak mohu najít konkrétní SmartArt objekt na snímku, pokud jich je několik?
Nastavte jedinečnou hodnotu Shape.alternative_text nebo Shape.name na tvar SmartArt, vyhledejte tuto hodnotu v Slide.shapes, a poté ověřte, že odpovídající tvar je SmartArt.