SmartArt alakzati csomópontok kezelése prezentációkban JavaScript használatával
Áttekintés
A PowerPoint‑prezentációk SmartArt‑grafikáit olyan csomópontok rendezik, amelyek szöveget tartalmaznak és meghatározzák a diagram szerkezetét. Az Aspose.Slides lehetővé teszi ezen SmartArt‑csomópontok programozott kezelését: új csomópontok és gyermekcsomópontok hozzáadása, gyermekcsomópontok beillesztése meghatározott pozícióban, meglévő csomópontok elérése, valamint a szövegük, szintjük és pozíciójuk kiolvasása.
Ez a cikk bemutatja a SmartArt‑alak csomópontok kezelését. Megmutatja, hogyan távolítsuk el a csomópontokat, hogyan dolgozzunk gyermekcsomópontokkal index vagy pozíció alapján, hogyan alakítsunk át egy asszisztens csomópontot normál csomóponttá, hogyan állítsuk be a SmartArt‑csomópont alakzatok pozícióját, méretét és forgását, hogyan állítsunk be csomópont kitöltési formátumot, és hogyan generáljunk bélyegképet egy SmartArt‑gyermekcsomópontról.
SmartArt‑csomópont hozzáadása PowerPoint‑prezentációhoz JavaScript használatával
Az Aspose.Slides for Node.js via Java a legegyszerűbb API‑t biztosítja a SmartArt‑alakok kezeléséhez. Az alábbi mintakód segít csomópont és gyermekcsomópont hozzáadásában egy SmartArt‑alakba.
- Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt‑alakkal.
- Szerezze meg az első dia hivatkozását az indexe alapján.
- Járja be a dián lévő összes alakzatot.
- Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
- Add a new Node a SmartArt‑alak NodeCollection‑be, és állítsa be a szöveget a TextFrame‑ben.
- Most Add egy Child Node az újonnan hozzáadott SmartArt csomópontba, és állítsa be a szöveget a TextFrame‑ben.
- Mentse a prezentációt.
// A kívánt prezentáció betöltése
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
// Az első dián belül lévő összes alakzat bejárása
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Ellenőrizze, hogy az alakzat SmartArt típusú-e
if (java.instanceOf(shape, "com.aspose.slides.SmartArt")) {
// Az alakzat típuskonvertálása SmartArt-re
var smart = shape;
// Új SmartArt csomópont hozzáadása
var TemNode = smart.getAllNodes().addNode();
// Szöveg hozzáadása
TemNode.getTextFrame().setText("Test");
// Új gyermekcsomópont hozzáadása a szülőcsomóponthoz. A gyűjtemény végére kerül hozzáadásra
var newNode = TemNode.getChildNodes().addNode();
// Szöveg hozzáadása
newNode.getTextFrame().setText("New Node Added");
}
}
// Prezentáció mentése
pres.save("AddSmartArtNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑csomópont hozzáadása meghatározott pozícióban
Az alábbi mintakódban bemutatjuk, hogyan adhatók hozzá a SmartArt‑alak megfelelő csomópontjaihoz tartozó gyermekcsomópontok adott pozícióban.
- Hozzon létre egy Presentation példányt.
- Szerezze meg az első dia hivatkozását az indexe alapján.
- Adjon hozzá egy StackedList típusú SmartArt alakzatot a kiválasztott diára.
- Hozzáférés az első csomóponthoz a hozzáadott SmartArt‑alakban.
- Most adjon hozzá egy Child Node a kiválasztott Node pozíció 2‑nél, és állítsa be a szöveget.
- Mentse a prezentációt.
// Prezentáció példány létrehozása
var pres = new aspose.slides.Presentation();
try {
// A prezentáció dia elérése
var slide = pres.getSlides().get_Item(0);
// Smart Art IShape hozzáadása
var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.StackedList);
// SmartArt csomópont elérése az 0 indexen
var node = smart.getAllNodes().get_Item(0);
// Új gyermekcsomópont hozzáadása a szülőcsomópont 2. pozíciójában
var chNode = node.getChildNodes().addNodeByPosition(2);
// Szöveg hozzáadása
chNode.getTextFrame().setText("Sample Text Added");
// Prezentáció mentése
pres.save("AddSmartArtNodeByPosition.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑csomópont elérése PowerPoint‑prezentációban JavaScript használatával
Az alábbi mintakód segít a SmartArt‑alakban lévő csomópontok elérésében. Vegye figyelembe, hogy a SmartArt LayoutType attribútuma csak olvasható, és csak a SmartArt‑alak hozzáadása során állítható be.
- Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt‑alakokkal.
- Szerezze meg az első dia hivatkozását az indexe alapján.
- Járja be a dián lévő összes alakzatot.
- Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
- Járja be az összes Nodes elemet a SmartArt‑alakban.
- Hozzáférés és információ megjelenítése, például a SmartArt csomópont pozíciója, szintje és szövege.
// Prezentáció osztály példányosítása
var pres = new aspose.slides.Presentation("SmartArtShape.pptx");
try {
// Első dia lekérése
var slide = pres.getSlides().get_Item(0);
// Az első dián belül lévő összes alakzat bejárása
for (let i = 0; i < slide.getShapes().size(); i++) {
let shape = slide.getShapes().get_Item(i);
// Ellenőrizze, hogy az alakzat SmartArt típusú-e
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Az alakzat típuskonvertálása SmartArt-re
var smart = shape;
// Az SmartArt belüli összes csomópont bejárása
for (var j = 0; j < smart.getAllNodes().size(); j++) {
// SmartArt csomópont elérése i indexen
var node = smart.getAllNodes().get_Item(j);
// A SmartArt csomópont paramétereinek kiírása
console.log(node.getTextFrame().getText() + " " + node.getLevel() + " " + node.getPosition());
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑gyermekcsomópont elérése
Az alábbi mintakód segít a SmartArt‑alak megfelelő csomópontjaihoz tartozó gyermekcsomópontok elérésében.
- Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt‑alakokkal.
- Szerezze meg a második dia hivatkozását az indexe alapján.
- Járja be a dián lévő összes alakzatot.
- Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
- Járja be az összes Nodes elemet a SmartArt‑alakban.
- Minden kiválasztott SmartArt‑alak Node esetén járja be az összes Child Nodes elemet az adott csomópontban.
- Hozzáférés és információ megjelenítése, például a Child Node pozíciója, szintje és szövege.
// Prezentáció osztály példányosítása
var pres = new aspose.slides.Presentation("AccessChildNodes.pptx");
try {
// Első dia lekérése
var slide = pres.getSlides().get_Item(0);
// Az első dián belül lévő összes alakzat bejárása
for (let s = 0; s < slide.getShapes().size(); s++) {
let shape = slide.getShapes().get_Item(s);
// Ellenőrizze, hogy az alakzat SmartArt típusú-e
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Az alakzat típuskonvertálása SmartArt-re
var smart = shape;
// Az SmartArt belüli összes csomópont bejárása
for (var i = 0; i < smart.getAllNodes().size(); i++) {
// SmartArt csomópont elérése i indexen
var node0 = smart.getAllNodes().get_Item(i);
// Az i indexű SmartArt csomópont gyermekcsomópontjainak bejárása
for (var j = 0; j < node0.getChildNodes().size(); j++) {
// Gyermekcsomópont elérése a SmartArt csomópontban
var node = node0.getChildNodes().get_Item(j);
// A SmartArt gyermekcsomópont paramétereinek kiírása
console.log("j = " + j + ", Text = " + node.getTextFrame().getText() + ", Level = " + node.getLevel() + ", Position = " + node.getPosition());
}
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑gyermekcsomópont elérése meghatározott pozícióban
Ebben a példában megtanuljuk, hogyan érhetjük el a gyermekcsomópontokat egy adott pozícióban, a SmartArt‑alak megfelelő csomópontjaihoz tartozóan.
- Hozzon létre egy Presentation példányt.
- Szerezze meg a második dia hivatkozását az indexe alapján.
- Adjon hozzá egy StackedList típusú SmartArt alakzatot.
- Hozzáférés a hozzáadott SmartArt‑alakhoz.
- Hozzáférés a 0 indexű csomóponthoz a kiválasztott SmartArt‑alakban.
- Most a get_Item() metódussal érje el a Child Node 1 pozícióban lévő gyermekcsomópontot.
- Hozzáférés és információ megjelenítése, például a Child Node pozíciója, szintje és szövege.
// A prezentáció példányosítása
var pres = new aspose.slides.Presentation();
try {
// Az első dia elérése
var slide = pres.getSlides().get_Item(0);
// SmartArt alakzat hozzáadása az első diára
var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.StackedList);
// SmartArt csomópont elérése 0 indexen
var node = smart.getAllNodes().get_Item(0);
// Gyermekcsomópont elérése 1 pozícióban a szülőcsomópontban
var position = 1;
var chNode = node.getChildNodes().get_Item(position);
// A SmartArt gyermekcsomópont paramétereinek kiírása
console.log("Text = " + chNode.getTextFrame().getText() + ", Level = " + chNode.getLevel() + ", Position = " + chNode.getPosition());
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑csomópont eltávolítása PowerPoint‑prezentációban JavaScript használatával
Ebben a példában megtanuljuk, hogyan távolítsuk el a SmartArt‑alakban lévő csomópontokat.
- Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt alakzattal.
- Szerezze meg az első dia hivatkozását az indexe alapján.
- Járja be a dián lévő összes alakzatot.
- Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
- Ellenőrizze, hogy a SmartArt több mint 0 csomópontot tartalmaz.
- Válassza ki a törlendő SmartArt‑csomópontot.
- Most távolítsa el a kiválasztott csomópontot a RemoveNode metódussal.
- Mentse a prezentációt.
// A kívánt prezentáció betöltése
var pres = new aspose.slides.Presentation("AddSmartArtNode.pptx");
try {
// Az első dián belül lévő összes alakzat bejárása
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Ellenőrizze, hogy az alakzat SmartArt típusú-e
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Az alakzat típuskonvertálása SmartArt-re
var smart = shape;
if (smart.getAllNodes().size() > 0) {
// SmartArt csomópont elérése 0 indexen
var node = smart.getAllNodes().get_Item(0);
// A kiválasztott csomópont eltávolítása
smart.getAllNodes().removeNode(node);
}
}
}
// Prezentáció mentése
pres.save("RemoveSmartArtNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑csomópont eltávolítása meghatározott pozícióban
Ebben a példában megtanuljuk, hogyan távolítsuk el a SmartArt‑alakban lévő csomópontokat egy adott pozícióban.
- Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt alakzattal.
- Szerezze meg az első dia hivatkozását az indexe alapján.
- Járja be a dián lévő összes alakzatot.
- Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
- Válassza ki a SmartArt‑alak 0 indexű csomópontját.
- Most ellenőrizze, hogy a kiválasztott SmartArt‑csomópont több mint 2 gyermekcsomópontot tartalmaz.
- Ezután a Position 1‑es csomópontot távolítsa el a RemoveNode metódussal.
- Mentse a prezentációt.
// A kívánt prezentáció betöltése
var pres = new aspose.slides.Presentation("AddSmartArtNode.pptx");
try {
// Az első dián belül lévő összes alakzat bejárása
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Ellenőrizze, hogy az alakzat SmartArt típusú-e
if (java.instanceOf(shape, "com.aspose.slides.SmartArt")) {
// Az alakzat típuskonvertálása SmartArt-re
var smart = shape;
if (smart.getAllNodes().size() > 0) {
// SmartArt csomópont elérése 0 indexen
var node = smart.getAllNodes().get_Item(0);
if (node.getChildNodes().size() >= 2) {
// A 1. pozícióban lévő gyermekcsomópont eltávolítása
node.getChildNodes().removeNode(1);
}
}
}
}
// Prezentáció mentése
pres.save("RemoveSmartArtNodeByPosition.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Egyéni pozíció beállítása gyermekcsomópontban a SmartArt‑ban
Az Aspose.Slides for Node.js via Java most már támogatja a SmartArtShape X és Y tulajdonságok beállítását. Az alábbi kódrészlet megmutatja, hogyan állítható be egy egyéni SmartArtShape pozíció, méret és forgatás; vegye figyelembe, hogy új csomópontok hozzáadása az összes csomópont pozíciójának és méretének újraszámítását eredményezi. Az egyéni pozícióbeállításokkal a felhasználó a csomópontokat a saját igényei szerint helyezheti el.
// Prezentáció osztály példányosítása
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(20, 20, 600, 500, aspose.slides.SmartArtLayoutType.OrganizationChart);
// SmartArt alakzat áthelyezése új pozícióba
var node = smart.getAllNodes().get_Item(1);
var shape = node.getShapes().get_Item(1);
shape.setX(shape.getX() + (shape.getWidth() * 2));
shape.setY(shape.getY() - (shape.getHeight() * 2));
// SmartArt alakzat szélességének módosítása
node = smart.getAllNodes().get_Item(2);
shape = node.getShapes().get_Item(1);
shape.setWidth(shape.getWidth() + (shape.getWidth() * 2));
// SmartArt alakzat magasságának módosítása
node = smart.getAllNodes().get_Item(3);
shape = node.getShapes().get_Item(1);
shape.setHeight(shape.getHeight() + (shape.getHeight() * 2));
// SmartArt alakzat forgatásának módosítása
node = smart.getAllNodes().get_Item(4);
shape = node.getShapes().get_Item(1);
shape.setRotation(90);
pres.save("SmartArt.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
Asszisztens csomópont ellenőrzése
A következő forrás‑SmartArt‑alakot használjuk az egyes szakaszokban végzett vizsgálatokhoz.
![]() |
|---|
| Ábra: Forrás‑SmartArt‑alak a dián |
Az alábbi mintakódban azt vizsgáljuk, hogyan azonosíthatóak a Assistant Nodes a SmartArt‑csomópontgyűjteményben, és hogyan módosíthatók.
- Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt‑alakzattal.
- Szerezze meg a második dia hivatkozását az indexe alapján.
- Járja be a dián lévő összes alakzatot.
- Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
- Járja be az összes csomópontot a SmartArt‑alakban, és ellenőrizze, hogy Assistant Nodes‑ek‑e.
- Módosítsa az Assistant Node állapotát normál csomóponttá.
- Mentse a prezentációt.
// Prezentáció példány létrehozása
var pres = new aspose.slides.Presentation("AddNodes.pptx");
try {
// Az első dián belül lévő összes alakzat bejárása
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Ellenőrizze, hogy az alakzat SmartArt típusú-e
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Az alakzat típuskonvertálása SmartArt-re
var smart = shape;
// Az SmartArt alakzat összes csomópontjának bejárása
for (var j = 0; j < smart.getAllNodes().size(); j++) {
var node = smart.getAllNodes().get_Item(j);
// Ellenőrizze, hogy a csomópont Assistant csomópont-e
if (node.isAssistant()) {
// Az Assistant csomópont beállítása false értékre és normál csomóponttá alakítása
node.isAssistant();
}
}
}
}
// Prezentáció mentése
pres.save("ChangeAssitantNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
![]() |
|---|
| Ábra: Assistant Node‑ok módosítva a SmartArt‑alakban a dián |
Csomópont kitöltési formátumának beállítása
Az Aspose.Slides for Node.js via Java lehetővé teszi egyedi SmartArt‑alakok hozzáadását és azok kitöltési formátumának beállítását. Ez a cikk ismerteti, hogyan hozhatók létre és érhetők el a SmartArt‑alakok, valamint hogyan állítható be a kitöltési formátum a Aspose.Slides for Node.js via Java segítségével.
Kérjük, kövesse az alábbi lépéseket:
- Hozzon létre egy Presentation példányt.
- Szerezze meg egy dia hivatkozását az indexe alapján.
- Adjon hozzá egy SmartArt alakzatot a LayoutType beállításával.
- Állítsa be a FillFormat‑t a SmartArt‑alak csomópontjaihoz.
- Írja ki a módosított prezentációt PPTX fájlként.
// A prezentáció példányosítása
var pres = new aspose.slides.Presentation();
try {
// Dia elérése
var slide = pres.getSlides().get_Item(0);
// SmartArt alakzat és csomópontok hozzáadása
var chevron = slide.getShapes().addSmartArt(10, 10, 800, 60, aspose.slides.SmartArtLayoutType.ClosedChevronProcess);
var node = chevron.getAllNodes().addNode();
node.getTextFrame().setText("Some text");
// Csomópont kitöltőszínének beállítása
for (let i = 0; i < node.getShapes().size(); i++) {
let item = node.getShapes().get_Item(i);
item.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
item.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
}
// A prezentáció mentése
pres.save("TestSmart.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑gyermekcsomópont bélyegképének generálása
A fejlesztők a következő lépésekkel generálhatnak bélyegképet egy SmartArt‑gyermekcsomópontról:
- Hozzon létre egy Presentation példányt.
- Add SmartArt.
- Szerezze meg egy csomópont hivatkozását az indexe alapján.
- Kapja meg a bélyegkép‑képet.
- Mentse a bélyegkép‑képet a kívánt képtformátumban.
// Példányosítja a Presentation osztályt, amely a PPTX fájlt képviseli
var pres = new aspose.slides.Presentation();
try {
// SmartArt hozzáadása
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.BasicCycle);
// Csomópont hivatkozásának lekérése az index használatával
var node = smart.getNodes().get_Item(1);
// Bélyegkép lekérése
var slideImage = node.getShapes().get_Item(0).getImage();
// Bélyegkép mentése
try {
slideImage.save("SmartArt_ChildNote_Thumbnail.png", aspose.slides.ImageFormat.Png);
} finally {
if (slideImage != null) {
slideImage.dispose();
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
GYIK
Támogatott-e a SmartArt animáció?
Igen. A SmartArt‑ot a rendszer egy szokásos alakzatként kezeli, így alkalmazhat szabványos animációkat (belépés, kilépés, hangsúly, mozgási útvonal), és beállíthatja az időzítést. Szükség esetén a SmartArt‑csomópontokba ágyazott alakzatok is animálhatók.
Hogyan találhatom meg megbízhatóan egy adott SmartArt‑ot a dián, ha a belső azonosítója ismeretlen?
Keressen és állítson be alternatív szöveget. Egy jellegzetes AltText megadásával a SmartArt megtalálható anélkül, hogy a belső azonosítókra támaszkodna.
Megmarad-e a SmartArt megjelenése a prezentáció PDF‑re konvertálásakor?
Igen. Az Aspose.Slides a SmartArt‑ot nagy vizuális pontossággal rendereli a PDF‑export során, megőrizve a elrendezést, színeket és hatásokat.
Kivonhatok‑e egy képet az egész SmartArt‑ról (előnézetekhez vagy jelentésekhez)?
Igen. A SmartArt‑alakot renderelheti raszteres formátumokba vagy SVG‑be vektoros kimenetként, ami alkalmas bélyegképek, jelentések vagy webes felhasználás céljára.

