SmartArt grafika kezelése prezentációkban Java használatával
Áttekintés
Az Aspose.Slides lehetővé teszi, hogy programozott módon hozzon létre és kezeljen SmartArt grafikákat PowerPoint‑prezentációkban. Ebben a cikkben bemutatjuk, hogyan lehet SmartArt alakzatot hozzáadni egy diára, elérni a meglévő SmartArt alakzatokat, megtalálni a SmartArtot egy adott elrendezéstípus szerint, és frissíteni a megjelenését a SmartArt stílus vagy színstílus megváltoztatásával.
Az példák bemutatják, hogyan dolgozhatunk SmartArt alakzatokkal a prezentáció diájának alakzatgyűjteményén keresztül, hogyan ellenőrizhetjük, hogy egy alakzat SmartArt‑e, majd módosíthatjuk vagy vizsgálhatjuk meg annak tulajdonságait.
SmartArt alakzat létrehozása
Az Aspose.Slides for Java biztosítja az API‑t a SmartArt alakzatok létrehozásához. Egy SmartArt alakzat létrehozásához egy dián kövesse az alábbi lépéseket:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg egy dia referenciáját az Index használatával.
- SmartArt alakzat hozzáadása a Elrendezéstípus beállításával.
- Mentse a módosított prezentációt PPTX fájlként.
// Példányosítsa a Presentation osztályt
Presentation pres = new Presentation();
try {
// Szerezze meg az első diát
ISlide slide = pres.getSlides().get_Item(0);
// SmartArt alakzat hozzáadása
ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList);
// Prezentáció mentése
pres.save("SimpleSmartArt.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
![]() |
|---|
| Ábra: SmartArt alakzat hozzáadva a diára |
SmartArt alakzat elérése egy dián
Az alábbi kód a prezentáció diájára hozzáadott SmartArt alakzatok elérésére szolgál. A mintakódban végigjárjuk a dia minden alakzatát, és ellenőrizni fogjuk, hogy egy alakzat SmartArt típusú‑e. Ha igen, akkor a SmartArt példányra konvertáljuk.
// Töltse be a kívánt prezentációt
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
// Járja be az első dia minden alakzatát
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// Ellenőrizze, hogy az alakzat SmartArt típusú-e
if (shape instanceof ISmartArt)
{
// Alakzat típuskonvertálása SmartArtEx-re
ISmartArt smart = (ISmartArt)shape;
System.out.println("Shape Name:" + smart.getName());
}
}
} finally {
if (pres != null) pres.dispose();
}
SmartArt alakzat elérése egy adott elrendezéstípussal
Az alábbi mintakód segít hozzáférni a SmartArt alakzathoz egy adott Elrendezéstípussal. Kérjük, vegye figyelembe, hogy a SmartArt Elrendezéstípusa nem módosítható, mivel csak olvasható, és csak a SmartArt alakzat hozzáadásakor állítódik be.
- Hozzon létre egy példányt a Presentation osztályból, és töltse be a prezentációt SmartArt alakzattal.
- Szerezze meg az első dia referenciáját az Index használatával.
- Járja be az első dia minden alakzatát.
- Ellenőrizze, hogy az alakzat [SmartArt] típusú‑e, és ha igen, akkor alakítsa át a kijelölt alakzatot SmartArt‑ra.
- Ellenőrizze a SmartArt alakzatot a megadott Elrendezéstípussal, és hajtsa végre a szükséges műveleteket azt követően.
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
// Járja be az első dia minden alakzatát
for (IShape shape : pres.getSlides().get_Item(0).getShapes())
{
// Ellenőrizze, hogy az alakzat SmartArt típusú-e
if (shape instanceof ISmartArt)
{
// Alakzat típuskonvertálása SmartArtEx-re
ISmartArt smart = (ISmartArt) shape;
// SmartArt elrendezés ellenőrzése
if (smart.getLayout() == SmartArtLayoutType.BasicBlockList)
{
System.out.println("Do some thing here....");
}
}
}
} finally {
if (pres != null) pres.dispose();
}
SmartArt alakzat stílusának módosítása
Ebben a példában megtanuljuk, hogyan változtassuk meg a gyors stílust egy SmartArt alakzaton.
- Hozzon létre egy példányt a Presentation osztályból, és töltse be a prezentációt SmartArt alakzattal.
- Szerezze meg az első dia referenciáját az Index használatával.
- Járja be az első dia minden alakzatát.
- Ellenőrizze, hogy az alakzat [SmartArt] típusú‑e, és ha igen, akkor alakítsa át a kijelölt alakzatot SmartArt‑ra.
- Keresse meg a SmartArt alakzatot a megadott Stílussal.
- Állítsa be az új Stílust a SmartArt alakzatra.
- Mentse a prezentációt.
// Presentation osztály példányosítása
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
// Első dia lekérése
ISlide slide = pres.getSlides().get_Item(0);
// Az első dia minden alakzatát bejárja
for (IShape shape : slide.getShapes())
{
// Ellenőrizze, hogy az alakzat SmartArt típusú-e
if (shape instanceof ISmartArt)
{
// Alakzat típuskonvertálása SmartArtEx-re
ISmartArt smart = (ISmartArt) shape;
// SmartArt stílus ellenőrzése
if (smart.getQuickStyle() == SmartArtQuickStyleType.SimpleFill) {
// SmartArt stílusának módosítása
smart.setQuickStyle(SmartArtQuickStyleType.Cartoon);
}
}
}
// Prezentáció mentése
pres.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
![]() |
|---|
| Ábra: SmartArt alakzat módosított Stílussal |
SmartArt alakzat színstílusának módosítása
Ebben a példában megtanuljuk, hogyan változtassuk meg egy SmartArt alakzat színstílusát. A következő mintakódban elérjük a SmartArt alakzatot egy adott színstílussal, és módosítjuk annak stílusát.
- Hozzon létre egy példányt a Presentation osztályból, és töltse be a prezentációt SmartArt alakzattal.
- Szerezze meg az első dia referenciáját az Index használatával.
- Járja be az első dia minden alakzatát.
- Ellenőrizze, hogy az alakzat [SmartArt] típusú‑e, és ha igen, akkor alakítsa át a kijelölt alakzatot SmartArt‑ra.
- Keresse meg a SmartArt alakzatot a megadott Színstílussal.
- Állítsa be az új Színstílust a SmartArt alakzatra.
- Mentse a prezentációt.
// Presentation osztály példányosítása
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
// Első dia lekérése
ISlide slide = pres.getSlides().get_Item(0);
// Az első dia minden alakzatát bejárja
for (IShape shape : slide.getShapes())
{
// Ellenőrizze, hogy az alakzat SmartArt típusú-e
if (shape instanceof ISmartArt)
{
// Alakzat típuskonvertálása SmartArtEx-re
ISmartArt smart = (ISmartArt) shape;
// SmartArt szín típus ellenőrzése
if (smart.getColorStyle() == SmartArtColorType.ColoredFillAccent1) {
// SmartArt szín típusának módosítása
smart.setColorStyle(SmartArtColorType.ColorfulAccentColors);
}
}
}
// Prezentáció mentése
pres.save("ChangeSmartArtColorStyle.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
![]() |
|---|
| Ábra: SmartArt alakzat módosított Színstílussal |
GYIK
Animálhatom a SmartArtot egyetlen objektumként?
Igen. A SmartArt egy alakzat, ezért a standard animációkat alkalmazhatja az animációs API‑val (belépés, kilépés, hangsúlyozás, mozgási útvonalak), akárcsak más alakzatoknál.
Hogyan találhatok meg egy adott SmartArtot a dián, ha nem ismerem a belső ID‑jét?
Állítsa be és használja az alternatív szöveget (AltText), majd keresse az alakzatot ezen az értéken – ez a javasolt módszer a cél alakzat megtalálására.
Csoportosíthatom a SmartArtot más alakzatokkal?
Igen. A SmartArtot csoportosíthatja más alakzatokkal (képek, táblázatok stb.), majd manipulálhatja a csoportot.
Hogyan szerezhetek képet egy adott SmartArtról (pl. előnézethez vagy jelentéshez)?
Exportáljon egy bélyegkép/képet az alakzatról; a könyvtár képes egyedi alakzatok renderelésére raszteres fájlokba (PNG/JPG/TIFF).
Megmarad a SmartArt megjelenése, ha az egész prezentációt PDF‑be konvertáljuk?
Igen. A renderelő motor a magas hűségre törekszik a PDF export során, különböző minőség- és kompatibilitási beállításokkal.

