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.

  1. Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt‑alakkal.
  2. Szerezze meg az első dia hivatkozását az indexe alapján.
  3. Járja be a dián lévő összes alakzatot.
  4. Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
  5. Add a new Node a SmartArt‑alak NodeCollection‑be, és állítsa be a szöveget a TextFrame‑ben.
  6. Most Add egy Child Node az újonnan hozzáadott SmartArt csomópontba, és állítsa be a szöveget a TextFrame‑ben.
  7. 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.

  1. Hozzon létre egy Presentation példányt.
  2. Szerezze meg az első dia hivatkozását az indexe alapján.
  3. Adjon hozzá egy StackedList típusú SmartArt alakzatot a kiválasztott diára.
  4. Hozzáférés az első csomóponthoz a hozzáadott SmartArt‑alakban.
  5. Most adjon hozzá egy Child Node a kiválasztott Node pozíció 2‑nél, és állítsa be a szöveget.
  6. 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.

  1. Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt‑alakokkal.
  2. Szerezze meg az első dia hivatkozását az indexe alapján.
  3. Járja be a dián lévő összes alakzatot.
  4. Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
  5. Járja be az összes Nodes elemet a SmartArt‑alakban.
  6. 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.

  1. Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt‑alakokkal.
  2. Szerezze meg a második dia hivatkozását az indexe alapján.
  3. Járja be a dián lévő összes alakzatot.
  4. Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
  5. Járja be az összes Nodes elemet a SmartArt‑alakban.
  6. Minden kiválasztott SmartArt‑alak Node esetén járja be az összes Child Nodes elemet az adott csomópontban.
  7. 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.

  1. Hozzon létre egy Presentation példányt.
  2. Szerezze meg a második dia hivatkozását az indexe alapján.
  3. Adjon hozzá egy StackedList típusú SmartArt alakzatot.
  4. Hozzáférés a hozzáadott SmartArt‑alakhoz.
  5. Hozzáférés a 0 indexű csomóponthoz a kiválasztott SmartArt‑alakban.
  6. Most a get_Item() metódussal érje el a Child Node 1 pozícióban lévő gyermekcsomópontot.
  7. 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.

  1. Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt alakzattal.
  2. Szerezze meg az első dia hivatkozását az indexe alapján.
  3. Járja be a dián lévő összes alakzatot.
  4. Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
  5. Ellenőrizze, hogy a SmartArt több mint 0 csomópontot tartalmaz.
  6. Válassza ki a törlendő SmartArt‑csomópontot.
  7. Most távolítsa el a kiválasztott csomópontot a RemoveNode metódussal.
  8. 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.

  1. Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt alakzattal.
  2. Szerezze meg az első dia hivatkozását az indexe alapján.
  3. Járja be a dián lévő összes alakzatot.
  4. Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
  5. Válassza ki a SmartArt‑alak 0 indexű csomópontját.
  6. Most ellenőrizze, hogy a kiválasztott SmartArt‑csomópont több mint 2 gyermekcsomópontot tartalmaz.
  7. Ezután a Position 1‑es csomópontot távolítsa el a RemoveNode metódussal.
  8. 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.

todo:image_alt_text
Á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.

  1. Hozzon létre egy Presentation példányt, és töltse be a prezentációt SmartArt‑alakzattal.
  2. Szerezze meg a második dia hivatkozását az indexe alapján.
  3. Járja be a dián lévő összes alakzatot.
  4. Ellenőrizze, hogy az alakzat SmartArt típusú‑e, és ha igen, alakítsa át SmartArt típusúvá.
  5. Járja be az összes csomópontot a SmartArt‑alakban, és ellenőrizze, hogy Assistant Nodes‑ek‑e.
  6. Módosítsa az Assistant Node állapotát normál csomóponttá.
  7. 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();
    }
}
todo:image_alt_text
Á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:

  1. Hozzon létre egy Presentation példányt.
  2. Szerezze meg egy dia hivatkozását az indexe alapján.
  3. Adjon hozzá egy SmartArt alakzatot a LayoutType beállításával.
  4. Állítsa be a FillFormat‑t a SmartArt‑alak csomópontjaihoz.
  5. Í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:

  1. Hozzon létre egy Presentation példányt.
  2. Add SmartArt.
  3. Szerezze meg egy csomópont hivatkozását az indexe alapján.
  4. Kapja meg a bélyegkép‑képet.
  5. 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.