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ů:

  1. Vytvořte instanci třídy Presentation.
  2. Získejte snímek podle jeho indexu.
  3. Přidejte tvar SmartArt zadáním SmartArtLayoutType.
  4. 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()
SmartArt shape
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.

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci obsahující tvar SmartArt.
  2. Získejte první snímek podle jeho indexu.
  3. Projděte všechny tvary na prvním snímku.
  4. Zkontrolujte, zda je tvar instancí SmartArt.
  5. 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.

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci obsahující tvar SmartArt.
  2. Získejte první snímek podle jeho indexu.
  3. Projděte všechny tvary na prvním snímku.
  4. Zkontrolujte, zda je tvar instancí SmartArt.
  5. Najděte tvar SmartArt se zadaným stylem.
  6. Nastavte nový styl pro tvar SmartArt.
  7. 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()
SmartArt shape
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.

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci obsahující tvar SmartArt.
  2. Získejte první snímek podle jeho indexu.
  3. Projděte všechny tvary na prvním snímku.
  4. Zkontrolujte, zda je tvar instancí SmartArt.
  5. Najděte tvar SmartArt se zadaným stylem barev.
  6. Nastavte nový styl barev pro tvar SmartArt.
  7. 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()
SmartArt shape
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.