SmartArt beheren in PowerPoint-presentaties op Android

Overzicht

SmartArt is een PowerPoint‑diagram dat bestaat uit knooppunten, knooppunt‑vormen en een lay-out. Met Aspose.Slides for Android via Java kunt u SmartArt maken, tekst uit de knooppunten lezen, de lay-out wijzigen, verborgen knooppunten inspecteren, lay-outs voor organisatieschema’s configureren en picture‑organisatieschema’s maken.

Tekst ophalen uit een SmartArt‑object

Een SmartArt‑knooppunt kan één of meerdere vormen bevatten. Om de zichtbare tekst te lezen, doorloopt u ISmartArt.getAllNodes, en leest u vervolgens het ITextFrame dat wordt geretourneerd door ISmartArtShape.getTextFrame.

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();
}

De lay-outtype van een SmartArt‑object wijzigen

De SmartArt‑lay-out bepaalt hoe knooppunten worden gerangschikt en verbonden. Het volgende voorbeeld maakt een SmartArt‑object met de SmartArtLayoutType BasicBlockList‑waarde, wijzigt deze naar de BasicProcess‑waarde en slaat de presentatie op.

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();
}

Controleren of een SmartArt‑knooppunt verborgen is

ISmartArtNode.isHidden geeft aan of het knooppunt verborgen is in het SmartArt‑datamodel. Verborgen knooppunten kunnen in de structuur aanwezig zijn, zelfs wanneer de geselecteerde lay-out ze niet als zichtbare diagramonderdelen weergeeft.

Het volgende voorbeeld voegt een knooppunt toe aan een SmartArt‑object dat de SmartArtLayoutType RadialCycle‑waarde gebruikt en controleert de verborgen‑status van het knooppunt.

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();
}

De lay-out van een organisatieschema ophalen of instellen

Voor SmartArt‑diagrammen die een organisatieschema‑lay-out gebruiken, definiëren ISmartArtNode.getOrganizationChartLayout en ISmartArtNode.setOrganizationChartLayout hoe onderliggende knooppunten onder een bovenliggend knooppunt worden gerangschikt. U kunt bijvoorbeeld onderliggende knooppunten laten hangen aan de linker‑, rechter‑ of beide kanten, afhankelijk van de geselecteerde OrganizationChartLayoutType.

Het volgende voorbeeld maakt een organisatieschema en stelt de lay-out in voor het eerste knooppunt op de OrganizationChartLayoutType LeftHanging‑waarde.

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();
}

Een picture‑organisatieschema maken

Een picture‑organisatieschema is een SmartArt‑lay-out die bedoeld is voor hiërarchische diagrammen met afbeeldings‑plaatsaanduidingen. Gebruik de SmartArtLayoutType PictureOrganizationChart‑waarde bij het toevoegen van het SmartArt‑object aan een dia.

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();
}

FAQ

Ondersteunt SmartArt spiegelen of omkeren voor RTL‑talen?

Ja. De ISmartArt.setReversed methode schakelt de diagramrichting van links‑naar‑rechts naar rechts‑naar‑links, of omgekeerd, wanneer de gekozen SmartArt‑lay-out omkering ondersteunt.

Hoe kan ik SmartArt kopiëren naar dezelfde dia of naar een andere presentatie terwijl de opmaak behouden blijft?

U kunt de SmartArt‑vorm klonen met ShapeCollection.addClone of de hele dia klonen /slides/nl/androidjava/clone-slides/ die de SmartArt bevat. Beide methoden behouden grootte, positie en opmaak.

Hoe render ik SmartArt naar een rasterafbeelding voor voorbeeld of webexport?

Render de dia of de volledige presentatie naar PNG of JPEG. SmartArt wordt gerenderd als onderdeel van de dia.

Hoe kan ik een specifiek SmartArt‑object op een dia vinden als er meerdere aanwezig zijn?

Stel een kenmerkende Shape.getAlternativeText of Shape.getName‑waarde in op de SmartArt‑vorm, zoek die waarde in BaseSlide.getShapes, en controleer vervolgens of de gevonden vorm een ISmartArt is.