SmartArt in PowerPoint-Präsentationen mit JavaScript verwalten

Übersicht

SmartArt ist ein PowerPoint‑Diagramm, das aus Knoten, Knotformen und einem Layout besteht. Mit Aspose.Slides für Node.js über Java können Sie SmartArt erstellen, Text aus dessen Knoten lesen, das Layout ändern, ausgeblendete Knoten untersuchen, Organigramm‑Layouts konfigurieren und Bild‑Organigramme erstellen.

Text aus einem SmartArt-Objekt abrufen

Ein SmartArt‑Knoten kann ein oder mehrere Shapes enthalten. Um den sichtbaren Text zu lesen, iterieren Sie über SmartArt.getAllNodes, und lesen dann das von SmartArtShape.getTextFrame zurückgegebene TextFrame.

let presentation = new aspose.slides.Presentation("sample.pptx");
try {
    let slide = presentation.getSlides().get_Item(0);
    let shape = slide.getShapes().get_Item(0);

    if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
        let smartArt = shape;
        let nodes = smartArt.getAllNodes();

        for (let nodeIndex = 0; nodeIndex < nodes.size(); nodeIndex++) {
            let node = nodes.get_Item(nodeIndex);
            let nodeShapes = node.getShapes();

            for (let shapeIndex = 0; shapeIndex < nodeShapes.size(); shapeIndex++) {
                let nodeShape = nodeShapes.get_Item(shapeIndex);

                if (nodeShape.getTextFrame() != null) {
                    console.log(nodeShape.getTextFrame().getText());
                }
            }
        }
    }
} finally {
    presentation.dispose();
}

Layouttyp eines SmartArt-Objekts ändern

Das SmartArt‑Layout bestimmt, wie Knoten angeordnet und verbunden werden. Das folgende Beispiel erstellt ein SmartArt‑Objekt mit dem SmartArtLayoutType BasicBlockList‑Wert, ändert ihn zu dem Wert BasicProcess und speichert die Präsentation.

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

    smartArt.setLayout(aspose.slides.SmartArtLayoutType.BasicProcess);

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

Überprüfen, ob ein SmartArt‑Knoten ausgeblendet ist

SmartArtNode.isHidden gibt an, ob der Knoten im SmartArt‑Datenmodell ausgeblendet ist. Ausgeblendete Knoten können in der Struktur vorhanden sein, selbst wenn das ausgewählte Layout sie nicht als sichtbare Diagrammelemente anzeigt.

Das folgende Beispiel fügt einem SmartArt‑Objekt, das den SmartArtLayoutType RadialCycle‑Wert verwendet, einen Knoten hinzu und prüft den ausgeblendeten Zustand des Knotens.

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

    let node = smartArt.getAllNodes().addNode();
    let isHidden = node.isHidden();

    if (isHidden) {
        console.log("The node is hidden in the SmartArt data model.");
    }

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

Organigramm-Layout abrufen oder festlegen

Bei SmartArt‑Diagrammen, die ein Organigramm‑Layout verwenden, definieren SmartArtNode.getOrganizationChartLayout und SmartArtNode.setOrganizationChartLayout, wie untergeordnete Knoten unter einem übergeordneten Knoten angeordnet werden. Zum Beispiel können Sie untergeordnete Knoten am linken, rechten oder an beiden Seiten hängen lassen, abhängig vom ausgewählten OrganizationChartLayoutType.

Das folgende Beispiel erstellt ein Organigramm und legt das Layout für den ersten Knoten auf den OrganizationChartLayoutType LeftHanging‑Wert fest.

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

    let rootNode = smartArt.getNodes().get_Item(0);
    rootNode.setOrganizationChartLayout(aspose.slides.OrganizationChartLayoutType.LeftHanging);

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

Bild-Organigramm erstellen

Ein Bild‑Organigramm ist ein SmartArt‑Layout, das für Hierarchie‑Diagramme mit Bild‑Platzhaltern entwickelt wurde. Verwenden Sie den SmartArtLayoutType PictureOrganizationChart‑Wert, wenn Sie das SmartArt‑Objekt zu einer Folie hinzufügen.

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

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

FAQ

Unterstützt SmartArt das Spiegeln oder Umkehren für RTL‑Sprachen?

Ja. Die Methode SmartArt.setReversed ändert die Diagrammrichtung von links‑nach‑rechts zu rechts‑nach‑links bzw. zurück, wenn das ausgewählte SmartArt‑Layout die Umkehrung unterstützt.

Wie kann ich SmartArt auf dieselbe Folie oder in eine andere Präsentation kopieren und dabei die Formatierung beibehalten?

Sie können das SmartArt‑Shape mit clone the SmartArt shape durch ShapeCollection.addClone klonen oder die gesamte Folie, die die SmartArt enthält, mit clone the whole slide duplizieren. Beide Verfahren erhalten Größe, Position und Formatierung.

Wie rendere ich SmartArt zu einem Rasterbild für die Vorschau oder den Web‑Export?

Rendern Sie die Folie mit Render the slide oder die gesamte Präsentation zu PNG oder JPEG. SmartArt wird als Teil der Folie gerendert.

Wie kann ich ein bestimmtes SmartArt‑Objekt auf einer Folie finden, wenn mehrere vorhanden sind?

Legen Sie einen eindeutigen Shape.setAlternativeText oder Shape.setName Wert auf der SmartArt‑Form fest, suchen Sie diesen Wert in BaseSlide.getShapes und prüfen Sie anschließend, ob das gefundene Shape ein SmartArt ist.