Správa grafiky SmartArt v prezentacích pomocí Pythonu
Přehled
Aspose.Slides vám umožňuje programově vytvářet a spravovat grafiku SmartArt v prezentacích PowerPoint. Tento článek vysvětluje, jak přidat tvar SmartArt na snímek, přistupovat k existujícím tvarům SmartArt, najít SmartArt podle konkrétního typu rozvržení a aktualizovat jeho vzhled změnou stylu SmartArt nebo stylu barev.
Příklady ukazují, jak pracovat s tvary SmartArt prostřednictvím kolekce tvarů snímku prezentace, zkontrolovat, zda je tvar SmartArt, a poté upravit nebo prohlédnout jeho vlastnosti.
Vytvoření tvaru SmartArt
Aspose.Slides for Python via Java poskytuje rozhraní API pro vytváření tvarů SmartArt. Chcete-li vytvořit tvar SmartArt na snímku, postupujte podle následujících kroků:
- Vytvořte instanci třídy Presentation.
- Získejte snímek podle jeho indexu.
- Přidejte tvar SmartArt zadáním SmartArtLayoutType.
- Uložte upravenou prezentaci jako soubor PPTX.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArtLayoutType
presentation = Presentation()
try:
# Získat první snímek.
slide = presentation.getSlides().get_Item(0)
# Přidat tvar SmartArt.
smart_art = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList)
# Uložit prezentaci.
presentation.save("SimpleSmartArt.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Obrázek: Tvar SmartArt přidaný na snímek |
Přístup k tvaru SmartArt na snímku
Následující příklad přistupuje k tvarům SmartArt na snímku prezentace. Prochází všechny tvary na snímku a kontroluje, zda je tvar instancí SmartArt.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SmartArt
presentation = Presentation("AccessSmartArtShape.pptx")
try:
# Projít všechny tvary na prvním snímku.
for shape in presentation.getSlides().get_Item(0).getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
print("Shape Name: " + str(smart_art.getName()))
finally:
presentation.dispose()
Přístup k tvaru SmartArt s konkrétním typem rozvržení
Následující příklad přistupuje k tvaru SmartArt který má konkrétní typ rozvržení, vrácený metodou SmartArt.getLayout.
- Vytvořte instanci třídy Presentation a načtěte prezentaci obsahující tvar SmartArt.
- Získejte první snímek podle jeho indexu.
- Projděte všechny tvary na prvním snímku.
- Zkontrolujte, zda je tvar instancí SmartArt.
- Zkontrolujte, zda má tvar SmartArt zadaný typ rozvržení, a proveďte požadovanou operaci.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SmartArt, SmartArtLayoutType
presentation = Presentation("AccessSmartArtShape.pptx")
try:
# Projít všechny tvary na prvním snímku.
for shape in presentation.getSlides().get_Item(0).getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Zkontrolovat rozvržení SmartArt.
if smart_art.getLayout() == SmartArtLayoutType.BasicBlockList:
print("Perform the required operation here.")
finally:
presentation.dispose()
Změna stylu tvaru SmartArt
Tento příklad ukazuje, jak změnit rychlý styl tvaru SmartArt.
- Vytvořte instanci třídy Presentation a načtěte prezentaci obsahující tvar SmartArt.
- Získejte první snímek podle jeho indexu.
- Projděte všechny tvary na prvním snímku.
- Zkontrolujte, zda je tvar instancí SmartArt.
- Najděte tvar SmartArt se zadaným stylem.
- Nastavte nový styl pro tvar SmartArt.
- Uložte prezentaci.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArt, SmartArtQuickStyleType
presentation = Presentation("SimpleSmartArt.pptx")
try:
slide = presentation.getSlides().get_Item(0)
# Projít všechny tvary na prvním snímku.
for shape in slide.getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Zkontrolovat a změnit styl SmartArt.
if smart_art.getQuickStyle() == SmartArtQuickStyleType.SimpleFill:
smart_art.setQuickStyle(SmartArtQuickStyleType.Cartoon)
presentation.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Obrázek: Tvar SmartArt se změněným stylem |
Změna stylu barev tvaru SmartArt
Tento příklad přistupuje k tvaru SmartArt s konkrétním stylem barev a mění tento styl.
- Vytvořte instanci třídy Presentation a načtěte prezentaci obsahující tvar SmartArt.
- Získejte první snímek podle jeho indexu.
- Projděte všechny tvary na prvním snímku.
- Zkontrolujte, zda je tvar instancí SmartArt.
- Najděte tvar SmartArt se zadaným stylem barev.
- Nastavte nový styl barev pro tvar SmartArt.
- Uložte prezentaci.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArt, SmartArtColorType
presentation = Presentation("SimpleSmartArt.pptx")
try:
slide = presentation.getSlides().get_Item(0)
# Projít všechny tvary na prvním snímku.
for shape in slide.getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Zkontrolovat a změnit styl SmartArt.
if smart_art.getColorStyle() == SmartArtColorType.ColoredFillAccent1:
smart_art.setColorStyle(SmartArtColorType.ColorfulAccentColors)
presentation.save("ChangeSmartArtColorStyle.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Obrázek: Tvar SmartArt se změněným stylem barev |
FAQ
Mohu animovat SmartArt jako jediný objekt?
Ano. SmartArt je tvar, takže můžete pomocí API animací použít standardní animace (vstup, odchod, důraz, dráhy pohybu) stejně jako u ostatních tvarů.
Jak mohu najít konkrétní SmartArt na snímku, pokud neznám jeho interní ID?
Nastavte a použijte alternativní text a vyhledejte tvar podle této hodnoty - jedná se o doporučený způsob, jak najít cílový tvar.
Mohu seskupit SmartArt s jinými tvary?
Ano. Můžete seskupit SmartArt s jinými tvary (obrázky, tabulky atd.) a poté manipulovat se skupinou.
Jak získám obrázek konkrétního SmartArt (např. pro náhled nebo zprávu)?
Exportujte miniaturu/obrázek tvaru; knihovna může vykreslit jednotlivé tvary do rastrových souborů (PNG/JPG/TIFF).
Zůstane vzhled SmartArt zachován při konverzi celé prezentace do PDF?
Ano. Vykreslovací engine cílí na vysokou věrnost při exportu do PDF, s řadou možností kvality a kompatibility.

