Zarządzanie grafikami SmartArt w prezentacjach przy użyciu Pythona
Przegląd
Aspose.Slides umożliwia programowe tworzenie i zarządzanie grafikami SmartArt w prezentacjach PowerPoint. Ten artykuł wyjaśnia, jak dodać kształt SmartArt na slajdzie, uzyskać dostęp do istniejących kształtów SmartArt, znaleźć SmartArt o określonym typie układu oraz zaktualizować jego wygląd, zmieniając styl SmartArt lub styl kolorów.
Przykłady pokazują, jak pracować z kształtami SmartArt za pośrednictwem kolekcji kształtów slajdu prezentacji, sprawdzić, czy kształt jest SmartArt, a następnie modyfikować lub przeglądać jego właściwości.
Utworzenie kształtu SmartArt
Aspose.Slides for Python via Java udostępnia API do tworzenia kształtów SmartArt. Aby utworzyć kształt SmartArt na slajdzie, wykonaj poniższe kroki:
- Utwórz instancję klasy Presentation.
- Pobierz slajd według jego indeksu.
- Dodaj kształt SmartArt określając SmartArtLayoutType.
- Zapisz zmodyfikowaną prezentację jako plik PPTX.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArtLayoutType
presentation = Presentation()
try:
# Pobierz pierwszy slajd.
slide = presentation.getSlides().get_Item(0)
# Dodaj kształt SmartArt.
smart_art = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList)
# Zapisz prezentację.
presentation.save("SimpleSmartArt.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Rysunek: Kształt SmartArt dodany do slajdu |
Dostęp do kształtu SmartArt na slajdzie
Poniższy przykład uzyskuje dostęp do kształtów SmartArt na slajdzie prezentacji. Iteruje przez każdy kształt na slajdzie i sprawdza, czy kształt jest instancją SmartArt.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SmartArt
presentation = Presentation("AccessSmartArtShape.pptx")
try:
# Iteruj przez każdy kształt na pierwszym slajdzie.
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()
Dostęp do kształtu SmartArt o określonym typie układu
Poniższy przykład uzyskuje dostęp do kształtu SmartArt o określonym typie układu, zwróconego przez SmartArt.getLayout.
- Utwórz instancję klasy Presentation i wczytaj prezentację zawierającą kształt SmartArt.
- Pobierz pierwszy slajd według jego indeksu.
- Iteruj przez każdy kształt na pierwszym slajdzie.
- Sprawdź, czy kształt jest instancją SmartArt.
- Sprawdź, czy kształt SmartArt ma określony typ układu i wykonaj wymaganą operację.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SmartArt, SmartArtLayoutType
presentation = Presentation("AccessSmartArtShape.pptx")
try:
# Iteruj przez każdy kształt na pierwszym slajdzie.
for shape in presentation.getSlides().get_Item(0).getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Sprawdź układ SmartArt.
if smart_art.getLayout() == SmartArtLayoutType.BasicBlockList:
print("Perform the required operation here.")
finally:
presentation.dispose()
Zmiana stylu kształtu SmartArt
Ten przykład pokazuje, jak zmienić szybki styl kształtu SmartArt.
- Utwórz instancję klasy Presentation i wczytaj prezentację zawierającą kształt SmartArt.
- Pobierz pierwszy slajd według jego indeksu.
- Iteruj przez każdy kształt na pierwszym slajdzie.
- Sprawdź, czy kształt jest instancją SmartArt.
- Znajdź kształt SmartArt o określonym stylu.
- Ustaw nowy styl dla kształtu SmartArt.
- Zapisz prezentację.
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)
# Przeglądaj każdy kształt na pierwszym slajdzie.
for shape in slide.getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Sprawdź i zmień styl SmartArt.
if smart_art.getQuickStyle() == SmartArtQuickStyleType.SimpleFill:
smart_art.setQuickStyle(SmartArtQuickStyleType.Cartoon)
presentation.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Rysunek: Kształt SmartArt ze zmienionym stylem |
Zmiana stylu kolorów kształtu SmartArt
Ten przykład uzyskuje dostęp do kształtu SmartArt o określonym stylu kolorów i zmienia ten styl.
- Utwórz instancję klasy Presentation i wczytaj prezentację zawierającą kształt SmartArt.
- Pobierz pierwszy slajd według jego indeksu.
- Iteruj przez każdy kształt na pierwszym slajdzie.
- Sprawdź, czy kształt jest instancją SmartArt.
- Znajdź kształt SmartArt o określonym stylu kolorów.
- Ustaw nowy styl kolorów dla kształtu SmartArt.
- Zapisz prezentację.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpase.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArt, SmartArtColorType
presentation = Presentation("SimpleSmartArt.pptx")
try:
slide = presentation.getSlides().get_Item(0)
# Iteruj przez każdy kształt na pierwszym slajdzie.
for shape in slide.getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Sprawdź i zmień styl SmartArt.
if smart_art.getColorStyle() == SmartArtColorType.ColoredFillAccent1:
smart_art.setColorStyle(SmartArtColorType.ColorfulAccentColors)
presentation.save("ChangeSmartArtColorStyle.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Rysunek: Kształt SmartArt ze zmienionym stylem kolorów |
FAQ
Czy mogę animować SmartArt jako pojedynczy obiekt?
Tak. SmartArt jest kształtem, więc możesz zastosować standardowe animacje za pośrednictwem API animacji (animacje wejścia, wyjścia, podkreślenia, ścieżki ruchu) tak jak w przypadku innych kształtów.
Jak mogę znaleźć konkretny SmartArt na slajdzie, jeśli nie znam jego wewnętrznego ID?
Ustaw i użyj alternatywnego tekstu oraz wyszukaj kształt według tej wartości — jest to zalecany sposób odnalezienia docelowego kształtu.
Czy mogę grupować SmartArt z innymi kształtami?
Tak. możesz grupować SmartArt z innymi kształtami (obrazkami, tabelami itp.), a następnie manipulować grupą.
Jak uzyskać obraz konkretnego SmartArt (np. do podglądu lub raportu)?
Wyeksportuj miniaturę/obraz kształtu; biblioteka może renderować pojedyncze kształty do plików rastrowych (PNG/JPG/TIFF).
Czy wygląd SmartArt zostanie zachowany przy konwertowaniu całej prezentacji na PDF?
Tak. Silnik renderujący dąży do wysokiej wierności przy eksportowaniu do PDF, oferując różnorodne opcje jakości i kompatybilności.

