PowerPoint SmartArt Shape-Knoten in JavaScript erstellen oder verwalten
SmartArt‑Knoten zur PowerPoint‑Präsentation mit JavaScript hinzufügen
Aspose.Slides for Node.js via Java bietet die einfachste API, um SmartArt‑Objekte auf einfachste Weise zu verwalten. Der folgende Beispielcode zeigt, wie man einen Knoten und einen untergeordneten Knoten innerhalb eines SmartArt‑Objekts hinzufügt.
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation mit einem SmartArt‑Objekt.
- Holen Sie sich die Referenz der ersten Folie anhand ihres Index.
- Durchlaufen Sie alle Formen auf der ersten Folie.
- Prüfen Sie, ob die Form vom Typ SmartArt ist, und casten Sie die ausgewählte Form zu SmartArt um, falls sie SmartArt ist.
- Fügen Sie einen neuen Knoten in das SmartArt‑Objekt NodeCollection ein und setzen Sie den Text im TextFrame.
- Fügen Sie nun einen untergeordneten Knoten in den neu hinzugefügten SmartArt‑Knoten ein und setzen Sie den Text im TextFrame.
- Speichern Sie die Präsentation.
// Laden Sie die gewünschte Präsentation
var pres = new aspose.slides.Presentation("SimpleSmartArt.pptx");
try {
// Durchlaufen Sie jede Form auf der ersten Folie
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Prüfen, ob die Form vom Typ SmartArt ist
if (java.instanceOf(shape, "com.aspose.slides.SmartArt")) {
// Form zu SmartArt casten
var smart = shape;
// Einen neuen SmartArt-Knoten hinzufügen
var TemNode = smart.getAllNodes().addNode();
// Text hinzufügen
TemNode.getTextFrame().setText("Test");
// Neuen untergeordneten Knoten im übergeordneten Knoten hinzufügen. Er wird am Ende der Sammlung hinzugefügt
var newNode = TemNode.getChildNodes().addNode();
// Text hinzufügen
newNode.getTextFrame().setText("New Node Added");
}
}
// Präsentation speichern
pres.save("AddSmartArtNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑Knoten an einer bestimmten Position hinzufügen
Im folgenden Beispielcode wird erklärt, wie man die untergeordneten Knoten der jeweiligen SmartArt‑Knoten an einer bestimmten Position hinzufügt.
- Erstellen Sie eine Instanz der Klasse Presentation.
- Holen Sie sich die Referenz der ersten Folie anhand ihres Index.
- Fügen Sie in der ausgewählten Folie ein SmartArt‑Objekt vom Typ StackedList hinzu.
- Greifen Sie auf den ersten Knoten des hinzugefügten SmartArt‑Objekts zu.
- Fügen Sie nun den untergeordneten Knoten für den ausgewählten Knoten an Position 2 hinzu und setzen Sie dessen Text.
- Speichern Sie die Präsentation.
// Erstellen einer Präsentationsinstanz
var pres = new aspose.slides.Presentation();
try {
// Auf die Präsentationsfolie zugreifen
var slide = pres.getSlides().get_Item(0);
// SmartArt-IShape hinzufügen
var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.StackedList);
// Zugriff auf den SmartArt-Knoten bei Index 0
var node = smart.getAllNodes().get_Item(0);
// Neuen untergeordneten Knoten an Position 2 im übergeordneten Knoten hinzufügen
var chNode = node.getChildNodes().addNodeByPosition(2);
// Text hinzufügen
chNode.getTextFrame().setText("Sample Text Added");
// Präsentation speichern
pres.save("AddSmartArtNodeByPosition.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑Knoten in einer PowerPoint‑Präsentation mit JavaScript zugreifen
Der folgende Beispielcode zeigt, wie man auf Knoten innerhalb eines SmartArt‑Objekts zugreift. Bitte beachten Sie, dass Sie den LayoutType von SmartArt nicht ändern können, da er schreibgeschützt ist und nur beim Hinzufügen des SmartArt‑Objekts festgelegt wird.
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation mit einem SmartArt‑Objekt.
- Holen Sie sich die Referenz der ersten Folie anhand ihres Index.
- Durchlaufen Sie alle Formen auf der ersten Folie.
- Prüfen Sie, ob die Form vom Typ SmartArt ist, und casten Sie die ausgewählte Form zu SmartArt um, falls sie SmartArt ist.
- Durchlaufen Sie alle Nodes innerhalb des SmartArt‑Objekts.
- Greifen Sie auf Informationen wie die Position, Ebene und den Text des SmartArt‑Knotens zu und zeigen Sie diese an.
// Präsentationsklasse instanziieren
var pres = new aspose.slides.Presentation("SmartArtShape.pptx");
try {
// Erste Folie abrufen
var slide = pres.getSlides().get_Item(0);
// Durchlaufen Sie jede Form auf der ersten Folie
for (let i = 0; i < slide.getShapes().size(); i++) {
let shape = slide.getShapes().get_Item(i);
// Prüfen, ob die Form vom Typ SmartArt ist
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Form zu SmartArt casten
var smart = shape;
// Durchlaufen Sie alle Knoten innerhalb von SmartArt
for (var j = 0; j < smart.getAllNodes().size(); j++) {
// Zugriff auf den SmartArt-Knoten bei Index i
var node = smart.getAllNodes().get_Item(j);
// Ausgabe der SmartArt-Knotenparameter
console.log(node.getTextFrame().getText() + " " + node.getLevel() + " " + node.getPosition());
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
Zugriff auf SmartArt‑untergeordnete Knoten
Der folgende Beispielcode zeigt, wie man auf die untergeordneten Knoten der jeweiligen SmartArt‑Knoten zugreift.
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation mit einem SmartArt‑Objekt.
- Holen Sie sich die Referenz der ersten Folie anhand ihres Index.
- Durchlaufen Sie alle Formen auf der ersten Folie.
- Prüfen Sie, ob die Form vom Typ SmartArt ist, und casten Sie die ausgewählte Form zu SmartArt um, falls sie SmartArt ist.
- Durchlaufen Sie alle Nodes innerhalb des SmartArt‑Objekts.
- Für jeden ausgewählten SmartArt‑Knoten Node durchlaufen Sie alle Child Nodes des jeweiligen Knotens.
- Greifen Sie auf Informationen wie die Position, Ebene und den Text des untergeordneten Knotens zu und zeigen Sie diese an.
// Präsentationsklasse instanziieren
var pres = new aspose.slides.Presentation("AccessChildNodes.pptx");
try {
// Erste Folie abrufen
var slide = pres.getSlides().get_Item(0);
// Durchlaufen Sie jede Form auf der ersten Folie
for (let s = 0; s < slide.getShapes().size(); s++) {
let shape = slide.getShapes().get_Item(s);
// Prüfen, ob die Form vom Typ SmartArt ist
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Form zu SmartArt casten
var smart = shape;
// Durchlaufen Sie alle Knoten innerhalb von SmartArt
for (var i = 0; i < smart.getAllNodes().size(); i++) {
// Zugriff auf den SmartArt-Knoten bei Index i
var node0 = smart.getAllNodes().get_Item(i);
// Durchlaufen der untergeordneten Knoten im SmartArt-Knoten bei Index i
for (var j = 0; j < node0.getChildNodes().size(); j++) {
// Zugriff auf den untergeordneten Knoten im SmartArt-Knoten
var node = node0.getChildNodes().get_Item(j);
// Ausgabe der SmartArt-Unterknotenparameter
console.log("j = " + j + ", Text = " + node.getTextFrame().getText() + ", Level = " + node.getLevel() + ", Position = " + node.getPosition());
}
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
Zugriff auf SmartArt‑untergeordnete Knoten an einer bestimmten Position
In diesem Beispiel lernen wir, wie man die untergeordneten Knoten an einer bestimmten Position der jeweiligen SmartArt‑Knoten abruft.
- Erstellen Sie eine Instanz der Klasse Presentation.
- Holen Sie sich die Referenz der ersten Folie anhand ihres Index.
- Fügen Sie ein SmartArt‑Objekt vom Typ StackedList hinzu.
- Greifen Sie auf das hinzugefügte SmartArt‑Objekt zu.
- Greifen Sie auf den Knoten mit Index 0 des ausgewählten SmartArt‑Objekts zu.
- Greifen Sie nun mit der Methode get_Item() auf den untergeordneten Knoten an Position 1 des ausgewählten SmartArt‑Knotens zu.
- Greifen Sie auf Informationen wie die Position, Ebene und den Text des untergeordneten Knotens zu und zeigen Sie diese an.
// Präsentation instanziieren
var pres = new aspose.slides.Presentation();
try {
// Zugriff auf die erste Folie
var slide = pres.getSlides().get_Item(0);
// Hinzufügen der SmartArt-Shape in der ersten Folie
var smart = slide.getShapes().addSmartArt(0, 0, 400, 400, aspose.slides.SmartArtLayoutType.StackedList);
// Zugriff auf den SmartArt-Knoten bei Index 0
var node = smart.getAllNodes().get_Item(0);
// Zugriff auf den untergeordneten Knoten an Position 1 im übergeordneten Knoten
var position = 1;
var chNode = node.getChildNodes().get_Item(position);
// Ausgabe der SmartArt-Unterknotenparameter
console.log("Text = " + chNode.getTextFrame().getText() + ", Level = " + chNode.getLevel() + ", Position = " + chNode.getPosition());
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑Knoten in einer PowerPoint‑Präsentation mit JavaScript entfernen
In diesem Beispiel lernen wir, wie man die Knoten innerhalb eines SmartArt‑Objekts entfernt.
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation mit einem SmartArt‑Objekt.
- Holen Sie sich die Referenz der ersten Folie anhand ihres Index.
- Durchlaufen Sie alle Formen auf der ersten Folie.
- Prüfen Sie, ob die Form vom Typ SmartArt ist, und casten Sie die ausgewählte Form zu SmartArt um, falls sie SmartArt ist.
- Prüfen Sie, ob das SmartArt mehr als 0 Knoten enthält.
- Wählen Sie den zu löschenden SmartArt‑Knoten aus.
- Entfernen Sie nun den ausgewählten Knoten mit der Methode RemoveNode.
- Speichern Sie die Präsentation.
// Laden Sie die gewünschte Präsentation
var pres = new aspose.slides.Presentation("AddSmartArtNode.pptx");
try {
// Durchlaufen Sie jede Form auf der ersten Folie
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Prüfen, ob die Form vom Typ SmartArt ist
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Form zu SmartArt casten
var smart = shape;
if (smart.getAllNodes().size() > 0) {
// Zugriff auf den SmartArt-Knoten bei Index 0
var node = smart.getAllNodes().get_Item(0);
// Entfernen des ausgewählten Knotens
smart.getAllNodes().removeNode(node);
}
}
}
// Präsentation speichern
pres.save("RemoveSmartArtNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
SmartArt‑Knoten an einer bestimmten Position entfernen
In diesem Beispiel lernen wir, wie man die Knoten innerhalb eines SmartArt‑Objekts an einer bestimmten Position entfernt.
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation mit einem SmartArt‑Objekt.
- Holen Sie sich die Referenz der ersten Folie anhand ihres Index.
- Durchlaufen Sie alle Formen auf der ersten Folie.
- Prüfen Sie, ob die Form vom Typ SmartArt ist, und casten Sie die ausgewählte Form zu SmartArt um, falls sie SmartArt ist.
- Wählen Sie den SmartArt‑Knoten an Index 0 aus.
- Prüfen Sie nun, ob der ausgewählte SmartArt‑Knoten mehr als 2 untergeordnete Knoten hat.
- Entfernen Sie nun den Knoten an Position 1 mit der Methode RemoveNode.
- Speichern Sie die Präsentation.
// Laden Sie die gewünschte Präsentation
var pres = new aspose.slides.Presentation("AddSmartArtNode.pptx");
try {
// Durchlaufen Sie jede Form auf der ersten Folie
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Prüfen, ob die Form vom Typ SmartArt ist
if (java.instanceOf(shape, "com.aspose.slides.SmartArt")) {
// Form zu SmartArt casten
var smart = shape;
if (smart.getAllNodes().size() > 0) {
// Zugriff auf den SmartArt‑Knoten bei Index 0
var node = smart.getAllNodes().get_Item(0);
if (node.getChildNodes().size() >= 2) {
// Entfernen des untergeordneten Knotens an Position 1
node.getChildNodes().removeNode(1);
}
}
}
}
// Präsentation speichern
pres.save("RemoveSmartArtNodeByPosition.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Benutzerdefinierte Position für untergeordnete Knoten in SmartArt festlegen
Aspose.Slides for Node.js via Java unterstützt jetzt das Setzen der Eigenschaften X und Y für SmartArtShape. Der nachstehende Codeausschnitt zeigt, wie man benutzerdefinierte Position, Größe und Drehung für ein SmartArtShape festlegt. Beachten Sie, dass das Hinzufügen neuer Knoten eine Neuberechnung der Positionen und Größen aller Knoten auslöst. Mit benutzerdefinierten Positionseinstellungen können Benutzer die Knoten nach Bedarf anordnen.
// Instantiate Presentation Class
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);
// Move SmartArt shape to new position
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));
// Change SmartArt shape's widths
node = smart.getAllNodes().get_Item(2);
shape = node.getShapes().get_Item(1);
shape.setWidth(shape.getWidth() + (shape.getWidth() * 2));
// Change SmartArt shape's height
node = smart.getAllNodes().get_Item(3);
shape = node.getShapes().get_Item(1);
shape.setHeight(shape.getHeight() + (shape.getHeight() * 2));
// Change SmartArt shape's rotation
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();
}
Assistant‑Knoten prüfen
Wir verwenden das folgende Quell‑SmartArt‑Objekt für unsere Untersuchungen in den verschiedenen Abschnitten dieses Artikels.
![]() |
|---|
| Abbildung: Quell‑SmartArt‑Objekt in der Folie |
Im folgenden Beispielcode untersuchen wir, wie man Assistant Nodes in der SmartArt‑Knotensammlung identifiziert und ändert.
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation mit einem SmartArt‑Objekt.
- Holen Sie sich die Referenz der zweiten Folie anhand ihres Index.
- Durchlaufen Sie alle Formen auf der ersten Folie.
- Prüfen Sie, ob die Form vom Typ SmartArt ist, und casten Sie die ausgewählte Form zu SmartArt um, falls sie SmartArt ist.
- Durchlaufen Sie alle Knoten im SmartArt‑Objekt und prüfen Sie, ob es sich um Assistant Nodes handelt.
- Ändern Sie den Status des Assistant‑Knotens zu einem normalen Knoten.
- Speichern Sie die Präsentation.
// Erstellen einer Präsentationsinstanz
var pres = new aspose.slides.Presentation("AddNodes.pptx");
try {
// Durchlaufen jeder Form auf der ersten Folie
for (let i = 0; i < pres.getSlides().get_Item(0).getShapes().size(); i++) {
let shape = pres.getSlides().get_Item(0).getShapes().get_Item(i);
// Prüfen, ob die Form vom Typ SmartArt ist
if (java.instanceOf(shape, "com.aspose.slides.ISmartArt")) {
// Form zu SmartArt casten
var smart = shape;
// Durchlaufen aller Knoten des SmartArt-Objekts
for (var j = 0; j < smart.getAllNodes().size(); j++) {
var node = smart.getAllNodes().get_Item(j);
// Prüfen, ob der Knoten ein Assistant-Knoten ist
if (node.isAssistant()) {
// Assistant-Status auf false setzen und den Knoten zu einem normalen Knoten machen
node.isAssistant();
}
}
}
}
// Präsentation speichern
pres.save("ChangeAssitantNode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
![]() |
|---|
| Abbildung: Assistant‑Knoten im SmartArt‑Objekt der Folie geändert |
Füllformat für Knoten festlegen
Aspose.Slides for Node.js via Java ermöglicht das Hinzufügen benutzerdefinierter SmartArt‑Objekte und das Setzen ihres Füllformats. Dieser Artikel erklärt, wie man SmartArt‑Objekte erstellt, darauf zugreift und ihr Füllformat festlegt.
Bitte führen Sie die folgenden Schritte aus:
- Erstellen Sie eine Instanz der Klasse Presentation.
- Holen Sie sich die Referenz einer Folie anhand ihres Index.
- Fügen Sie ein SmartArt-Objekt hinzu, indem Sie dessen LayoutType festlegen.
- Setzen Sie das FillFormat für die Knoten des SmartArt‑Objekts.
- Speichern Sie die geänderte Präsentation als PPTX‑Datei.
// Präsentation instanziieren
var pres = new aspose.slides.Presentation();
try {
// Zugriff auf die Folie
var slide = pres.getSlides().get_Item(0);
// SmartArt-Shape und Knoten hinzufügen
var chevron = slide.getShapes().addSmartArt(10, 10, 800, 60, aspose.slides.SmartArtLayoutType.ClosedChevronProcess);
var node = chevron.getAllNodes().addNode();
node.getTextFrame().setText("Some text");
// Füllfarbe des Knotens setzen
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"));
}
// Präsentation speichern
pres.save("TestSmart.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Miniaturansicht eines SmartArt‑untergeordneten Knotens erstellen
Entwickler können eine Miniaturansicht eines untergeordneten Knotens eines SmartArt‑Objekts erzeugen, indem sie die folgenden Schritte ausführen:
- Erstellen Sie eine Instanz der Klasse Presentation.
- SmartArt hinzufügen.
- Holen Sie sich die Referenz eines Knotens anhand seines Index.
- Erhalten Sie das Miniaturbild.
- Speichern Sie das Miniaturbild in einem gewünschten Bildformat.
// Instanziieren der Presentation-Klasse, die die PPTX-Datei repräsentiert
var pres = new aspose.slides.Presentation();
try {
// SmartArt hinzufügen
var smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, aspose.slides.SmartArtLayoutType.BasicCycle);
// Den Verweis auf einen Knoten über seinen Index erhalten
var node = smart.getNodes().get_Item(1);
// Thumbnail abrufen
var slideImage = node.getShapes().get_Item(0).getImage();
// Thumbnail speichern
try {
slideImage.save("SmartArt_ChildNote_Thumbnail.png", aspose.slides.ImageFormat.Png);
} finally {
if (slideImage != null) {
slideImage.dispose();
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
FAQ
Wird SmartArt‑Animation unterstützt?
Ja. SmartArt wird wie eine reguläre Form behandelt, sodass Sie Standardanimationen (Einfade, Ausfaden, Hervorhebung, Bewegungsbahnen) anwenden und das Timing anpassen können. Bei Bedarf können Sie auch Formen innerhalb von SmartArt‑Knoten animieren.
Wie kann ich ein bestimmtes SmartArt auf einer Folie zuverlässig finden, wenn seine interne ID unbekannt ist?
Vergeben und suchen Sie nach dem alternativen Text. Durch das Setzen eines eindeutigen AltText‑Werts für das SmartArt‑Objekt können Sie es finden, ohne auf interne Bezeichner angewiesen zu sein.
Wird das Aussehen von SmartArt beim Konvertieren der Präsentation in PDF erhalten?
Ja. Aspose.Slides rendert SmartArt mit hoher visueller Genauigkeit beim PDF‑Export und bewahrt dabei Layout, Farben und Effekte.
Kann ich ein Bild des gesamten SmartArt extrahieren (für Vorschauen oder Berichte)?
Ja. Sie können ein SmartArt‑Objekt in Rasterformate oder in SVG rendern, um skalierbare Vektorausgaben zu erhalten, was es für Miniaturbilder, Berichte oder die Web‑Nutzung geeignet macht.

