Gestisci le grafiche SmartArt nelle presentazioni con Python
Panoramica
Aspose.Slides consente di creare e gestire grafica SmartArt nelle presentazioni PowerPoint in modo programmatico. Questo articolo spiega come aggiungere una forma SmartArt a una diapositiva, accedere alle forme SmartArt esistenti, trovare SmartArt in base a un tipo di layout specifico e aggiornare l’aspetto visivo modificando lo stile SmartArt o lo stile colore.
Gli esempi mostrano come lavorare con le forme SmartArt tramite la raccolta di forme della diapositiva della presentazione, verificare se una forma è SmartArt e quindi modificare o ispezionare le sue proprietà.
Creare una forma SmartArt
Aspose.Slides per Python via Java fornisce un’API per creare forme SmartArt. Per creare una forma SmartArt in una diapositiva, segui i passaggi seguenti:
- Crea un’istanza della classe Presentation.
- Ottieni una diapositiva per indice.
- Aggiungi una forma SmartArt specificando un SmartArtLayoutType.
- Salva la presentazione modificata come file PPTX.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArtLayoutType
presentation = Presentation()
try:
# Ottieni la prima diapositiva.
slide = presentation.getSlides().get_Item(0)
# Aggiungi una forma SmartArt.
smart_art = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList)
# Salva la presentazione.
presentation.save("SimpleSmartArt.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Figura: Forma SmartArt aggiunta alla diapositiva |
Accedere a una forma SmartArt su una diapositiva
L’esempio seguente accede alle forme SmartArt su una diapositiva della presentazione. Scorre tutte le forme sulla diapositiva e verifica se la forma è un’istanza di SmartArt.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SmartArt
presentation = Presentation("AccessSmartArtShape.pptx")
try:
# Itera attraverso ogni forma nella prima diapositiva.
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()
Accedere a una forma SmartArt con un tipo di layout particolare
L’esempio seguente accede a una forma SmartArt con un tipo di layout particolare, restituito da SmartArt.getLayout.
- Crea un’istanza della classe Presentation e carica la presentazione contenente una forma SmartArt.
- Ottieni la prima diapositiva per indice.
- Scorri tutte le forme nella prima diapositiva.
- Verifica se la forma è un’istanza di SmartArt.
- Verifica se la forma SmartArt ha il tipo di layout specificato ed esegui l’operazione richiesta.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SmartArt, SmartArtLayoutType
presentation = Presentation("AccessSmartArtShape.pptx")
try:
# Itera attraverso ogni forma nella prima diapositiva.
for shape in presentation.getSlides().get_Item(0).getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Verifica il layout dello SmartArt.
if smart_art.getLayout() == SmartArtLayoutType.BasicBlockList:
print("Perform the required operation here.")
finally:
presentation.dispose()
Modificare lo stile di una forma SmartArt
Questo esempio mostra come modificare lo stile rapido di una forma SmartArt.
- Crea un’istanza della classe Presentation e carica la presentazione contenente una forma SmartArt.
- Ottieni la prima diapositiva per indice.
- Scorri tutte le forme nella prima diapositiva.
- Verifica se la forma è un’istanza di SmartArt.
- Trova la forma SmartArt con lo stile specificato.
- Imposta il nuovo stile per la forma SmartArt.
- Salva la presentazione.
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)
# Itera attraverso ogni forma nella prima diapositiva.
for shape in slide.getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Verifica e cambia lo stile dello SmartArt.
if smart_art.getQuickStyle() == SmartArtQuickStyleType.SimpleFill:
smart_art.setQuickStyle(SmartArtQuickStyleType.Cartoon)
presentation.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Figura: Forma SmartArt con stile modificato |
Modificare lo stile colore di una forma SmartArt
Questo esempio accede a una forma SmartArt con uno stile colore particolare e ne modifica lo stile.
- Crea un’istanza della classe Presentation e carica la presentazione contenente una forma SmartArt.
- Ottieni la prima diapositiva per indice.
- Scorri tutte le forme nella prima diapositiva.
- Verifica se la forma è un’istanza di SmartArt.
- Trova la forma SmartArt con lo stile colore specificato.
- Imposta il nuovo stile colore per la forma SmartArt.
- Salva la presentazione.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jp jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, SmartArt, SmartArtColorType
presentation = Presentation("SimpleSmartArt.pptx")
try:
slide = presentation.getSlides().get_Item(0)
# Itera attraverso ogni forma nella prima diapositiva.
for shape in slide.getShapes():
if isinstance(shape, SmartArt):
smart_art = shape
# Verifica e cambia lo stile dello SmartArt.
if smart_art.getColorStyle() == SmartArtColorType.ColoredFillAccent1:
smart_art.setColorStyle(SmartArtColorType.ColorfulAccentColors)
presentation.save("ChangeSmartArtColorStyle.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
![]() |
|---|
| Figura: Forma SmartArt con stile colore modificato |
FAQ
Posso animare SmartArt come un unico oggetto?
Sì. SmartArt è una forma, quindi puoi applicare animazioni standard tramite l’API delle animazioni (ingresso, uscita, enfasi, percorsi di movimento) proprio come per le altre forme.
Come posso trovare uno specifico SmartArt su una diapositiva se non conosco il suo ID interno?
Imposta e utilizza il testo alternativo e cerca la forma con quel valore: è un metodo consigliato per individuare la forma desiderata.
Posso raggruppare SmartArt con altre forme?
Sì. Puoi raggruppare SmartArt con altre forme (immagini, tabelle, ecc.) e quindi manipolare il gruppo.
Come ottengo un’immagine di uno specifico SmartArt (ad es., per un’anteprima o un report)?
Esporta una miniatura/immagine della forma; la libreria può renderizzare forme individuali in file raster (PNG/JPG/TIFF).
L’aspetto di SmartArt verrà preservato quando si converte l’intera presentazione in PDF?
Sì. Il motore di rendering mira a un’alta fedeltà per l'esportazione PDF, con una gamma di opzioni di qualità e compatibilità.

