Hantera SmartArt-grafik i presentationer med Java
Översikt
Aspose.Slides låter dig skapa och hantera SmartArt-grafik i PowerPoint-presentationer programatiskt. Denna artikel förklarar hur du lägger till en SmartArt-form på en bild, får åtkomst till befintliga SmartArt-former, hittar SmartArt efter en specifik layouttyp och uppdaterar dess visuella utseende genom att ändra SmartArt‑stil eller färgstils.
Exemplen visar hur du arbetar med SmartArt-former via presentationens bilds formsamling, kontrollerar om en form är SmartArt och sedan ändrar eller inspekterar dess egenskaper.
Skapa en SmartArt-form
Aspose.Slides for Java har tillhandahållit ett API för att skapa SmartArt-former. För att skapa en SmartArt-form i en bild, följ stegen nedan:
- Skapa en instans av klassen Presentation .
- Hämta referensen till en bild genom att använda dess index.
- Lägg till en SmartArt-form genom att ange dess LayoutType .
- Spara den ändrade presentationen som en PPTX‑fil.
// Instansiera Presentation-klass
Presentation pres = new Presentation();
try {
// Hämta första bilden
ISlide slide = pres.getSlides().get_Item(0);
// Lägg till SmartArt-form
ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList);
// Sparar presentationen
pres.save("SimpleSmartArt.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
![]() |
|---|
| Figur: SmartArt-form tillagd på bilden |
Åtkomst till en SmartArt-form på en bild
Följande kod används för att komma åt SmartArt-formerna som lagts till i presentationsbilden. I exempelkoden kommer vi att gå igenom varje form i bilden och kontrollera om den är en SmartArt. Om formen är av typen SmartArt kommer vi att type‑casta den till en SmartArt .
// Ladda den önskade presentationen
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
// Gå igenom varje form i den första bilden
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// Kontrollera om formen är av SmartArt-typ
if (shape instanceof ISmartArt)
{
// Typecasta formen till SmartArtEx
ISmartArt smart = (ISmartArt)shape;
System.out.println("Shape Name:" + smart.getName());
}
}
} finally {
if (pres != null) pres.dispose();
}
Åtkomst till en SmartArt-form med en specifik layouttyp
Följande exempel kod hjälper dig att komma åt SmartArt formen med en specifik LayoutType. Observera att du inte kan ändra LayoutType för SmartArt eftersom den är skrivskyddad och endast sätts när SmartArt formen läggs till.
- Skapa en instans av klassen Presentation och läs in presentationen med SmartArt-form.
- Hämta referensen till den första bilden genom att använda dess index.
- Gå igenom varje form i den första bilden.
- Kontrollera om formen är av typen SmartArt, och type‑casta den valda formen till SmartArt om den är SmartArt.
- Kontrollera SmartArt-formen med den specifika LayoutType och utför de åtgärder som krävs efteråt.
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
// Gå igenom varje form i den första bilden
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// Kontrollera om formen är av SmartArt-typ
if (shape instanceof ISmartArt)
{
// Typecasta formen till SmartArtEx
ISmartArt smart = (ISmartArt) shape;
// Kontrollerar SmartArt-layout
if (smart.getLayout() == SmartArtLayoutType.BasicBlockList)
{
System.out.println("Do some thing here....");
}
}
}
} finally {
if (pres != null) pres.dispose();
}
Ändra en SmartArt-forms stil
I det här exemplet kommer vi att lära oss att ändra snabbstilen för en SmartArt-form.
- Skapa en instans av klassen Presentation och läs in presentationen med SmartArt-form.
- Hämta referensen till den första bilden genom att använda dess index.
- Gå igenom varje form i den första bilden.
- Kontrollera om formen är av typen SmartArt, och type‑casta den valda formen till SmartArt om den är SmartArt.
- Hitta SmartArt-formen med en specifik stil.
- Ställ in den nya stilen för SmartArt-formen.
- Spara presentationen.
// Instansiera Presentation-klass
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
// Hämta första bilden
ISlide slide = pres.getSlides().get_Item(0);
// Gå igenom varje form i den första bilden
for (IShape shape : slide.getShapes())
{
// Kontrollera om formen är av SmartArt-typ
if (shape instanceof ISmartArt)
{
// Typecasta formen till SmartArtEx
ISmartArt smart = (ISmartArt) shape;
// Kontrollerar SmartArt-stil
if (smart.getQuickStyle() == SmartArtQuickStyleType.SimpleFill) {
// Ändrar SmartArt-stil
smart.setQuickStyle(SmartArtQuickStyleType.Cartoon);
}
}
}
// Sparar presentationen
pres.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
![]() |
|---|
| Figur: SmartArt-form med ändrad stil |
Ändra en SmartArt-forms färgstil
I det här exemplet kommer vi att lära oss att ändra färgstilen för en SmartArt-form. I följande exempel kod kommer vi att komma åt SmartArt-formen med en specifik färgstil och ändra dess stil.
- Skapa en instans av klassen Presentation och läs in presentationen med SmartArt-form.
- Hämta referensen till den första bilden genom att använda dess index.
- Gå igenom varje form i den första bilden.
- Kontrollera om formen är av typen SmartArt, och type‑casta den valda formen till SmartArt om den är SmartArt.
- Hitta SmartArt-formen med en specifik färgstil.
- Ställ in den nya färgstilen för SmartArt-formen.
- Spara presentationen.
// Instansiera Presentation-klass
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
// Hämta första bilden
ISlide slide = pres.getSlides().get_Item(0);
// Gå igenom varje form i den första bilden
for (IShape shape : slide.getShapes())
{
// Kontrollera om formen är av SmartArt-typ
if (shape instanceof ISmartArt)
{
// Typecasta formen till SmartArtEx
ISmartArt smart = (ISmartArt) shape;
// Kontrollerar SmartArt-färgtyp
if (smart.getColorStyle() == SmartArtColorType.ColoredFillAccent1) {
// Ändrar SmartArt-färgtyp
smart.setColorStyle(SmartArtColorType.ColorfulAccentColors);
}
}
}
// Sparar presentationen
pres.save("ChangeSmartArtColorStyle.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
![]() |
|---|
| Figur: SmartArt-form med ändrad färgstil |
Vanliga frågor
Kan jag animera SmartArt som ett enda objekt?
Ja. SmartArt är en form, så du kan använda standardanimationer via animations‑API:et (ingång, utgång, betoning, rörelsebanor) precis som för andra former.
Hur kan jag hitta ett specifikt SmartArt på en bild om jag inte känner till dess interna ID?
Ange och använd alternativ text (AltText) och sök efter formen med det värdet – detta är ett rekommenderat sätt att hitta målformen.
Kan jag gruppera SmartArt med andra former?
Ja. Du kan gruppera SmartArt med andra former (bilder, tabeller osv.) och sedan manipulera gruppen.
Hur får jag en bild av ett specifikt SmartArt (t.ex. för en förhandsvisning eller rapport)?
Exportera en miniatyr/bild av formen; biblioteket kan rendera individuella former till rasterfiler (PNG/JPG/TIFF).
Kommer SmartArt-utseendet att bevaras när hela presentationen konverteras till PDF?
Ja. Rendering‑motorn strävar efter hög trohet för PDF-export, med ett antal kvalitets‑ och kompatibilitetsalternativ.

