Gestire le grafiche SmartArt nelle presentazioni usando Java
Panoramica
Aspose.Slides consente di creare e gestire grafiche SmartArt nelle presentazioni PowerPoint in modo programmatico. Questo articolo spiega come aggiungere una forma SmartArt a una diapositiva, accedere a forme SmartArt esistenti, trovare SmartArt per un tipo di layout specifico e aggiornare il suo aspetto visuale modificando lo stile SmartArt o lo stile colore.
Gli esempi mostrano come lavorare con le forme SmartArt tramite la raccolta forme della diapositiva della presentazione, verificare se una forma è SmartArt e quindi modificare o ispezionare le sue proprietà.
Creare una forma SmartArt
Aspose.Slides for Java ha fornito 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 il riferimento di una diapositiva utilizzando il suo indice.
- Aggiungi una forma SmartArt impostandola tramite LayoutType.
- Salva la presentazione modificata come file PPTX.
// Crea un'istanza della classe Presentation
Presentation pres = new Presentation();
try {
// Ottieni la prima diapositiva
ISlide slide = pres.getSlides().get_Item(0);
// Aggiungi forma SmartArt
ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList);
// Salva la presentazione
pres.save("SimpleSmartArt.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
![]() |
|---|
| Figura: forma SmartArt aggiunta alla diapositiva |
Accedere a una forma SmartArt su una diapositiva
Il codice seguente verrà utilizzato per accedere alle forme SmartArt aggiunte nella diapositiva della presentazione. Nel codice di esempio percorreremo ogni forma all’interno della diapositiva e verificheremo se è una forma SmartArt. Se la forma è di tipo SmartArt, la convertirà in un’istanza di SmartArt.
// Carica la presentazione desiderata
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
// Scorri ogni forma all'interno della prima diapositiva
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// Verifica se la forma è di tipo SmartArt
if (shape instanceof ISmartArt)
{
// Converti la forma in SmartArtEx
ISmartArt smart = (ISmartArt)shape;
System.out.println("Shape Name:" + smart.getName());
}
}
} finally {
if (pres != null) pres.dispose();
}
Accedere a una forma SmartArt con un tipo di Layout specifico
Il codice di esempio seguente aiuterà ad accedere alla forma SmartArt con un LayoutType specifico. Nota che non è possibile modificare il LayoutType di SmartArt poiché è di sola lettura e viene impostato solo quando la forma SmartArt viene aggiunta.
- Crea un’istanza della classe Presentation e carica la presentazione con la forma SmartArt.
- Ottieni il riferimento della prima diapositiva utilizzando il suo indice.
- Scorri ogni forma all’interno della prima diapositiva.
- Verifica se la forma è di tipo SmartArt e converti la forma selezionata in SmartArt se è SmartArt.
- Verifica la forma SmartArt con il LayoutType specifico e esegui le operazioni richieste successivamente.
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
// Scorri ogni forma all'interno della prima diapositiva
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// Verifica se la forma è di tipo SmartArt
if (shape instanceof ISmartArt)
{
// Esegui il cast della forma a SmartArtEx
ISmartArt smart = (ISmartArt) shape;
// Verifica il layout di SmartArt
if (smart.getLayout() == SmartArtLayoutType.BasicBlockList)
{
System.out.println("Do some thing here....");
}
}
}
} finally {
if (pres != null) pres.dispose();
}
Modificare lo stile di una forma SmartArt
In questo esempio, impareremo a cambiare lo stile rapido per qualsiasi forma SmartArt.
- Crea un’istanza della classe Presentation e carica la presentazione con la forma SmartArt.
- Ottieni il riferimento della prima diapositiva utilizzando il suo indice.
- Scorri ogni forma all’interno della prima diapositiva.
- Verifica se la forma è di tipo SmartArt e converti la forma selezionata in SmartArt se è SmartArt.
- Trova la forma SmartArt con lo Style specifico.
- Imposta il nuovo Style per la forma SmartArt.
- Salva la Presentazione.
// Istanzia la classe Presentation
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
// Ottieni la prima diapositiva
ISlide slide = pres.getSlides().get_Item(0);
// Scorri ogni forma all'interno della prima diapositiva
for (IShape shape : slide.getShapes())
{
// Verifica se la forma è di tipo SmartArt
if (shape instanceof ISmartArt)
{
// Esegui il cast della forma a SmartArtEx
ISmartArt smart = (ISmartArt) shape;
// Verifica lo stile SmartArt
if (smart.getQuickStyle() == SmartArtQuickStyleType.SimpleFill) {
// Modifica lo stile SmartArt
smart.setQuickStyle(SmartArtQuickStyleType.Cartoon);
}
}
}
// Salva la presentazione
pres.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
![]() |
|---|
| Figura: forma SmartArt con stile modificato |
Modificare lo stile colore di una forma SmartArt
In questo esempio, impareremo a cambiare lo stile colore per qualsiasi forma SmartArt. Nel codice di esempio seguente verrà acceduta la forma SmartArt con uno specifico stile colore e verrà modificato il suo stile.
- Crea un’istanza della classe Presentation e carica la presentazione con la forma SmartArt.
- Ottieni il riferimento della prima diapositiva utilizzando il suo indice.
- Scorri ogni forma all’interno della prima diapositiva.
- Verifica se la forma è di tipo SmartArt e converti la forma selezionata in SmartArt se è SmartArt.
- Trova la forma SmartArt con lo Stile colore specifico.
- Imposta il nuovo Stile colore per la forma SmartArt.
- Salva la Presentazione.
// Istanzia la classe Presentation
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
// Ottieni la prima diapositiva
ISlide slide = pres.getSlides().get_Item(0);
// Scorri ogni forma all'interno della prima diapositiva
for (IShape shape : slide.getShapes())
{
// Verifica se la forma è di tipo SmartArt
if (shape instanceof ISmartArt)
{
// Esegui il cast della forma a SmartArtEx
ISmartArt smart = (ISmartArt) shape;
// Verifica il tipo di colore SmartArt
if (smart.getColorStyle() == SmartArtColorType.ColoredFillAccent1) {
// Modifica il tipo di colore SmartArt
smart.setColorStyle(SmartArtColorType.ColorfulAccentColors);
}
}
}
// Salva la presentazione
pres.save("ChangeSmartArtColorStyle.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
![]() |
|---|
| Figura: forma SmartArt con stile colore modificato |
FAQ
Posso animare SmartArt come un singolo oggetto?
Sì. SmartArt è una forma, quindi puoi applicare animazioni standard tramite l’API di animazione (entrata, uscita, enfasi, percorsi di movimento) proprio come per le altre forme.
Come posso trovare uno SmartArt specifico su una diapositiva se non conosco il suo ID interno?
Imposta e utilizza il Testo Alternativo (AltText) e cerca la forma per quel valore—questo è un metodo consigliato per individuare la forma target.
Posso raggruppare SmartArt con altre forme?
Sì. Puoi raggruppare SmartArt con altre forme (immagini, tabelle, ecc.) e poi manipolare il gruppo.
Come posso ottenere un’immagine di uno SmartArt specifico (ad esempio 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 sarà preservato quando si converte l’intera presentazione in PDF?
Sì. Il motore di rendering punta a un’elevata fedeltà per l'esportazione PDF, offrendo una gamma di opzioni di qualità e compatibilità.

