SmartArt kezelése PowerPoint prezentációkban Java használatával

Áttekintés

A SmartArt egy PowerPoint diagram, amely csomópontokból, csomópont alakzatokból és egy elrendezésből áll. Az Aspose.Slides for Java-val létrehozhat SmartArt-ot, beolvashatja a csomópontok szövegét, módosíthatja az elrendezést, ellenőrizheti a rejtett csomópontokat, konfigurálhatja a szervezeti diagram elrendezéseket, és létrehozhat kép szervezeti diagramokat.

Szöveg lekérése egy SmartArt objektumból

Egy SmartArt csomópont egy vagy több alakzatot tartalmazhat. A látható szöveg beolvasásához iteráljon a ISmartArt.getAllNodes elemein, majd olvassa el a ISmartArtShape.getTextFrame által visszaadott ITextFrame.

Presentation presentation = new Presentation("sample.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IShape shape = slide.getShapes().get_Item(0);

    if (shape instanceof ISmartArt) {
        ISmartArt smartArt = (ISmartArt) shape;

        for (ISmartArtNode node : smartArt.getAllNodes()) {
            for (ISmartArtShape nodeShape : node.getShapes()) {
                if (nodeShape.getTextFrame() != null) {
                    System.out.println(nodeShape.getTextFrame().getText());
                }
            }
        }
    }
} finally {
    presentation.dispose();
}

A SmartArt objektum elrendezéstípusának módosítása

A SmartArt elrendezés szabályozza, hogyan vannak elrendezve és összekapcsolva a csomópontok. A következő példa egy SmartArt objektumot hoz létre a SmartArtLayoutType BasicBlockList értékkel, majd módosítja azt a BasicProcess értékre, és elmenti a prezentációt.

Presentation presentation = new Presentation();
try {
    ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
        10, 10, 400, 300, SmartArtLayoutType.BasicBlockList);

    smartArt.setLayout(SmartArtLayoutType.BasicProcess);

    presentation.save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Ellenőrizze, hogy egy SmartArt csomópont rejtett-e

Az ISmartArtNode.isHidden azt jelzi, hogy a csomópont rejtett-e a SmartArt adatmodellben. A rejtett csomópontok létezhetnek a struktúrában még akkor is, ha a kiválasztott elrendezés nem jeleníti meg őket látható diagramelemként.

A következő példa egy csomópontot ad egy SmartArt objektumhoz, amely a SmartArtLayoutType RadialCycle értéket használja, és ellenőrzi a csomópont rejtett állapotát.

Presentation presentation = new Presentation();
try {
    ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
        10, 10, 400, 300, SmartArtLayoutType.RadialCycle);

    ISmartArtNode node = smartArt.getAllNodes().addNode();
    boolean isHidden = node.isHidden();

    if (isHidden) {
        System.out.println("The node is hidden in the SmartArt data model.");
    }

    presentation.save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

A szervezeti diagram elrendezésének lekérése vagy beállítása

Azoknál a SmartArt diagramoknál, amelyek szervezeti diagram elrendezést használnak, az ISmartArtNode.getOrganizationChartLayout és az ISmartArtNode.setOrganizationChartLayout meghatározzák, hogyan rendeződnek el a gyermekcsomópontok egy szülőcsomópont alatt. Például beállíthatja, hogy a gyermekcsomópontok balról, jobbról vagy mindkét oldalról függjenek, a kiválasztott OrganizationChartLayoutType függvényében.

A következő példa egy szervezeti diagramot hoz létre, és az első csomópont elrendezését a OrganizationChartLayoutType LeftHanging értékre állítja.

Presentation presentation = new Presentation();
try {
    ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
        10, 10, 400, 300, SmartArtLayoutType.OrganizationChart);

    ISmartArtNode rootNode = smartArt.getNodes().get_Item(0);
    rootNode.setOrganizationChartLayout(OrganizationChartLayoutType.LeftHanging);

    presentation.save("OrganizationChartLayout_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Kép szervezeti diagram létrehozása

A kép szervezeti diagram egy SmartArt elrendezés, amely hierarchiai diagramokhoz készült, és képhelyeket tartalmaz. Használja a SmartArtLayoutType PictureOrganizationChart értéket a SmartArt objektum diára való hozzáadásakor.

Presentation presentation = new Presentation();
try {
    ISmartArt smartArt = presentation.getSlides().get_Item(0).getShapes().addSmartArt(
        0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart);

    presentation.save("PictureOrganizationChart_out.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

GYIK

Támogatja a SmartArt a tükörképezést vagy a fordítást jobbról balra (RTL) nyelvek esetén?

Igen. Az ISmartArt.setReversed metódus a diagram irányát balról jobbra helyett jobbról balra (vagy vissza) állítja, ha a kiválasztott SmartArt elrendezés támogatja a fordítást.

Hogyan másolhatom át a SmartArt-ot ugyanarra a diára vagy egy másik prezentációba a formázás megtartásával?

A SmartArt alakzat klónozásával a ShapeCollection.addClone vagy a SmartArt-ot tartalmazó teljes dia klónozásával másolhatja. Mindkét módszer megőrzi a méretet, a pozíciót és a formázást.

Hogyan renderelhetem a SmartArt-ot raszteres képre előnézet vagy webes export céljából?

A dia renderelése vagy a teljes prezentáció PNG vagy JPEG formátumba. A SmartArt a dia részeként kerül renderelésre.

Hogyan találhatok meg egy adott SmartArt objektumot egy dián, ha több is van?

Állítson be egy megkülönböztető Shape.getAlternativeText vagy Shape.getName értéket a SmartArt alakzaton, keresse meg ezt az értéket a BaseSlide.getShapes segítségével, majd ellenőrizze, hogy a megtalált alakzat egy ISmartArt.