SmartArt in PowerPoint-Präsentationen mit Java verwalten
Übersicht
SmartArt ist ein PowerPoint‑Diagramm, das aus Knoten, Knotenformen und einem Layout besteht. Mit Aspose.Slides für Java können Sie SmartArt erstellen, Text aus seinen Knoten lesen, das Layout ändern, versteckte Knoten untersuchen, Organisations‑Chart‑Layouts konfigurieren und Bild‑Organisations‑Charts 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 ISmartArt.getAllNodes, dann lesen Sie das von ISmartArtShape.getTextFrame zurückgegebene 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();
}
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.
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();
}
Prüfen, ob ein SmartArt‑Knoten ausgeblendet ist
ISmartArtNode.isHidden gibt an, ob der Knoten im SmartArt‑Datenmodell ausgeblendet ist. Ausgeblendete Knoten können in der Struktur existieren, selbst wenn das ausgewählte Layout sie nicht als sichtbare Diagrammelemente darstellt.
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.
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();
}
Organisations‑Chart‑Layout abrufen oder festlegen
Für SmartArt‑Diagramme, die ein Organisations‑Chart‑Layout verwenden, definieren ISmartArtNode.getOrganizationChartLayout und ISmartArtNode.setOrganizationChartLayout wie Kindknoten unter einem übergeordneten Knoten angeordnet werden. Beispielsweise können Sie Kindknoten links, rechts oder an beiden Seiten hängen lassen, je nach ausgewähltem OrganizationChartLayoutType.
Das folgende Beispiel erstellt ein Organisations‑Chart und legt das Layout für den ersten Knoten auf den OrganizationChartLayoutType LeftHanging‑Wert fest.
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();
}
Bild‑Organisations‑Chart erstellen
Ein Bild‑Organisations‑Chart ist ein SmartArt‑Layout, das für Hierarchie‑Diagramme mit Bildplatzhaltern entwickelt wurde. Verwenden Sie beim Hinzufügen des SmartArt‑Objekts zu einer Folie den SmartArtLayoutType PictureOrganizationChart‑Wert.
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
Unterstützt SmartArt das Spiegeln oder Umkehren für RTL‑Sprachen?
Ja. Die Methode ISmartArt.setReversed ändert die Diagrammrichtung von links‑nach‑rechts zu rechts‑nach‑links oder umgekehrt, wenn das ausgewählte SmartArt‑Layout die Umkehr unterstützt.
Wie kann ich SmartArt auf derselben Folie oder in eine andere Präsentation kopieren und dabei die Formatierung beibehalten?
Sie können die SmartArt‑Form SmartArt‑Shape klonen mit ShapeCollection.addClone oder die gesamte Folie, die die SmartArt enthält, ganze Folie klonen. Beide Vorgehensweisen erhalten Größe, Position und Formatierung.
Wie rendere ich SmartArt zu einem Raster‑Bild für die Vorschau oder den Web‑Export?
Sie können die Folie Folie rendern oder die gesamte Präsentation zu PNG oder JPEG konvertieren. SmartArt wird dabei 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.getAlternativeText oder Shape.getName Wert für die SmartArt‑Form fest, suchen Sie diesen Wert in BaseSlide.getShapes, und prüfen Sie anschließend, ob die gefundene Form ein ISmartArt ist.