Správa grafiky SmartArt v prezentacích pomocí JavaScriptu

Přehled

Aspose.Slides vám umožňuje programově vytvářet a spravovat grafiku SmartArt v prezentacích PowerPoint. Tento článek vysvětluje, jak do snímku přidat tvar SmartArt, jak přistupovat k existujícím tvarům SmartArt, jak najít SmartArt podle konkrétního typu rozvržení a jak aktualizovat jeho vizuální vzhled změnou stylu SmartArt nebo stylu barev.

Příklady ukazují, jak pracovat s tvary SmartArt pomocí kolekce tvarů snímku prezentace, zkontrolovat, zda je tvar SmartArt, a poté upravit nebo prozkoumat jeho vlastnosti.

Vytvoření tvaru SmartArt

Aspose.Slides pro Node.js via Java poskytuje rozhraní API pro vytváření tvarů SmartArt. Chcete-li vytvořit tvar SmartArt ve snímku, postupujte podle následujících kroků:

  1. Vytvořte instanci třídy Presentation.
  2. Získejte referenci na snímek pomocí jeho Indexu.
  3. Přidejte tvar SmartArt nastavením jeho LayoutType.
  4. Uložte upravenou prezentaci jako soubor PPTX.
// Vytvořte instanci třídy Presentation
var pres = new aspose.slides.Presentation();
try {
    // Získat první snímek
    var slide = pres.getSlides().get_Item(0);
    // Přidat tvar Smart Art
    var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.BasicBlockList);
    // Uložit prezentaci
    pres.save("SimpleSmartArt.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}
todo:image_alt_text
Obrázek: Tvar SmartArt přidaný do snímku

Přístup k tvaru SmartArt ve snímku

Následující kód bude použit k přístupu k tvarům SmartArt přidaným do snímku prezentace. Ve vzorovém kódu projdeme každý tvar uvnitř snímku a zkontrolujeme, zda je to tvar SmartArt. Pokud je tvar typu SmartArt, převedeme jej na instanci SmartArt.

// Načtěte požadovanou prezentaci
var pres = new aspose.slides.Presentation("AccessSmartArtShape.pptx");
try {
    // Procházejte každý tvar v prvním snímku
    for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
        let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
        // Zkontrolujte, zda je tvar typu SmartArt
        if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
            // Přetypujte tvar na SmartArtEx
            var smart = shape;
            console.log("Shape Name:" + smart.getName());
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Přístup k tvaru SmartArt s konkrétním typem rozvržení

Následující ukázkový kód pomůže získat tvar SmartArt s konkrétním LayoutType. Všimněte si, že LayoutType SmartArt nelze změnit, protože je jen pro čtení a nastavuje se pouze při přidání tvaru SmartArt.

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci s tvarem SmartArt.
  2. Získejte referenci na první snímek pomocí jeho Indexu.
  3. Projděte každý tvar uvnitř prvního snímku.
  4. Zkontrolujte, zda je tvar typu SmartArt a pokud ano, přetypujte vybraný tvar na SmartArt.
  5. Zkontrolujte tvar SmartArt s konkrétním LayoutType a proveďte požadované operace.
var pres = new aspose.slides.Presentation("AccessSmartArtShape.pptx");
try {
    // Procházejte každý tvar v prvním snímku
    for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
        let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
        // Zkontrolujte, zda je tvar typu SmartArt
        if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
            // Přetypujte tvar na SmartArtEx
            var smart = shape;
            // Kontrola rozvržení SmartArt
            if (smart.getLayout() == aspose.slides.SmartArtLayoutType.BasicBlockList) {
                console.log("Do some thing here....");
            }
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Změna stylu tvaru SmartArt

V tomto příkladu se naučíme změnit rychlý styl pro libovolný tvar SmartArt.

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci s tvarem SmartArt.
  2. Získejte referenci na první snímek pomocí jeho Indexu.
  3. Projděte každý tvar uvnitř prvního snímku.
  4. Zkontrolujte, zda je tvar typu SmartArt a pokud ano, přetypujte vybraný tvar na SmartArt.
  5. Najděte tvar SmartArt s konkrétním Style.
  6. Nastavte nový Style pro tvar SmartArt.
  7. Uložte prezentaci.
// Vytvořte instanci třídy Presentation
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
    // Získat první snímek
    var slide = pres.getSlides().get_Item(0);
    // Procházet každý tvar v prvním snímku
    for (let i = 0; i < slide.getShapes().size(); i++) {
        let shape = slide.getShapes().get_Item(i);
        // Zkontrolujte, zda je tvar typu SmartArt
        if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
            // Přetypujte tvar na SmartArtEx
            var smart = shape;
            // Kontrola stylu SmartArt
            if (smart.getQuickStyle() == aspose.slides.SmartArtQuickStyleType.SimpleFill) {
                // Změna stylu SmartArt
                smart.setQuickStyle(aspose.slides.SmartArtQuickStyleType.Cartoon);
            }
        }
    }
    // Ukládání prezentace
    pres.save("ChangeSmartArtStyle.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    pres.dispose();
}
todo:image_alt_text
Obrázek: Tvar SmartArt se změněným Style

Změna barevného stylu tvaru SmartArt

V tomto příkladu se naučíme změnit barevný styl pro libovolný tvar SmartArt. V následujícím ukázkovém kódu získáme tvar SmartArt s konkrétním barevným stylem a změníme jej.

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci s tvarem SmartArt.
  2. Získejte referenci na první snímek pomocí jeho Indexu.
  3. Projděte každý tvar uvnitř prvního snímku.
  4. Zkontrolujte, zda je tvar typu SmartArt a pokud ano, přetypujte vybraný tvar na SmartArt.
  5. Najděte tvar SmartArt s konkrétním Color Style.
  6. Nastavte nový Color Style pro tvar SmartArt.
  7. Uložte prezentaci.
// Vytvořte instanci třídy Presentation
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
    // Získat první snímek
    var slide = pres.getSlides().get_Item(0);
    // Procházet každý tvar v prvním snímku
    for (let i = 0; i < slide.getShapes().size(); i++) {
        let shape = slide.getShapes().get_Item(i);
        // Zkontrolujte, zda je tvar typu SmartArt
        if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
            // Přetypujte tvar na SmartArtEx
            var smart = shape;
            // Kontrola typu barvy SmartArt
            if (smart.getColorStyle() == aspose.slides.SmartArtColorType.ColoredFillAccent1) {
                // Změna typu barvy SmartArt
                smart.setColorStyle(aspose.slides.SmartArtColorType.ColorfulAccentColors);
            }
        }
    }
    // Ukládání prezentace
    pres.save("ChangeSmartArtColorStyle.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    pres.dispose();
}
todo:image_alt_text
Obrázek: Tvar SmartArt se změněným Color Style

FAQ

Mohu animovat SmartArt jako jeden objekt?

Ano. SmartArt je tvar, takže můžete pomocí API pro animace aplikovat standardní animace (vstupní, výstupní, důrazové, trajektorie pohybu) stejně jako u ostatních tvarů.

Jak mohu najít konkrétní SmartArt na snímku, pokud neznám jeho interní ID?

Nastavte a použijte alternativní text (AltText) a vyhledejte tvar podle této hodnoty — toto je doporučený způsob, jak najít cílový tvar.

Mohu seskupit SmartArt s jinými tvary?

Ano. Můžete seskupit SmartArt s jinými tvary (obrázky, tabulky atd.) a poté manipulovat skupinou.

Jak získám obrázek konkrétního SmartArt (např. pro náhled nebo zprávu)?

Exportujte miniaturu/obrázek tvaru; knihovna dokáže vyrenderovat jednotlivé tvary do rastrových souborů (PNG/JPG/TIFF).

Zůstane vzhled SmartArt zachován při převodu celé prezentace do PDF?

Ano. Vykreslovací engine usiluje o vysokou věrnost při exportu do PDF, s řadou možností kvality a kompatibility.