SmartArt in PowerPoint-Präsentationen mit Java verwalten

Text aus einem SmartArt-Objekt abrufen

Die TextFrame‑Methode wurde jetzt zur ISmartArtShape-Schnittstelle und zur SmartArtShape-Klasse hinzugefügt. Diese Eigenschaft ermöglicht es, den gesamten Text aus einem SmartArt abzurufen, wenn nicht nur Knotentexte vorhanden sind. Der folgende Beispielcode hilft, den Text aus einem SmartArt‑Knoten zu erhalten.

Presentation pres = new Presentation("Presentation.pptx");
try {
    ISlide slide = pres.getSlides().get_Item(0);
    ISmartArt smartArt = (ISmartArt)slide.getShapes().get_Item(0);

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

Layouttyp eines SmartArt-Objekts ändern

Um den Layouttyp von SmartArt zu ändern, folgen Sie den untenstehenden Schritten:

  • Erstellen Sie eine Instanz der Presentation-Klasse.
  • Rufen Sie die Referenz einer Folie über ihren Index ab.
  • Fügen Sie SmartArt BasicBlockList hinzu.
  • Ändern Sie LayoutType zu BasicProcess.
  • Schreiben Sie die Präsentation als PPTX‑Datei. Im untenstehenden Beispiel haben wir einen Verbinder zwischen zwei Formen hinzugefügt.
Presentation pres = new Presentation();
try {
    // SmartArt BasicProcess hinzufügen
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicBlockList);

    // LayoutTyp zu BasicProcess ändern
    smart.setLayout(SmartArtLayoutType.BasicProcess);

    // Präsentation speichern
    pres.save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Überprüfen der Hidden‑Eigenschaft eines SmartArt-Objekts

Bitte beachten Sie: Die Methode ISmartArtNode.isHidden() gibt true zurück, wenn dieser Knoten ein versteckter Knoten im Datenmodell ist. Um die Hidden‑Eigenschaft eines beliebigen Knotens von SmartArt zu prüfen, folgen Sie den untenstehenden Schritten:

  • Erstellen Sie eine Instanz der Presentation-Klasse.
  • Fügen Sie SmartArt RadialCycle hinzu.
  • Fügen Sie einen Knoten zu SmartArt hinzu.
  • Überprüfen Sie die isHidden‑Eigenschaft.
  • Schreiben Sie die Präsentation als PPTX‑Datei.

Im untenstehenden Beispiel haben wir einen Verbinder zwischen zwei Formen hinzugefügt.

Presentation pres = new Presentation();
try {
    // SmartArt BasicProcess hinzufügen 
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.RadialCycle);

    // Knoten zu SmartArt hinzufügen 
    ISmartArtNode node = smart.getAllNodes().addNode();

    // Check isHidden property
    boolean hidden = node.isHidden(); // Gibt true zurück

    if (hidden)
    {
        // Einige Aktionen oder Benachrichtigungen ausführen
    }
    // Präsentation speichern
    pres.save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Organisation‑Diagrammtyp abrufen oder festlegen

Die Methoden ISmartArtNode.getOrganizationChartLayout() und setOrganizationChartLayout(int) ermöglichen das Abrufen bzw. Festlegen des Organisation‑Diagrammtyps, der dem aktuellen Knoten zugeordnet ist. Um den Organisation‑Diagrammtyp abzurufen oder festzulegen, folgen Sie den untenstehenden Schritten:

  • Erstellen Sie eine Instanz der Presentation-Klasse.
  • Fügen Sie SmartArt auf einer Folie hinzu.
  • Rufen Sie den Organisation‑Diagrammtyp ab oder setzen Sie den Organisation‑Diagrammtyp.
  • Schreiben Sie die Präsentation als PPTX‑Datei. Im untenstehenden Beispiel haben wir einen Verbinder zwischen zwei Formen hinzugefügt.
Presentation pres = new Presentation();
try {
    // SmartArt BasicProcess hinzufügen
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.OrganizationChart);

    // Organisationsdiagrammtyp abrufen oder festlegen
    smart.getNodes().get_Item(0).setOrganizationChartLayout(OrganizationChartLayoutType.LeftHanging);

    // Präsentation speichern
    pres.save("OrganizeChartLayoutType_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Picture‑Organization‑Diagramm erstellen

Aspose.Slides for Java bietet eine einfache API zum Erstellen von PictureOrganization‑Diagrammen. So erstellen Sie ein Diagramm auf einer Folie:

  1. Erstellen Sie eine Instanz der Presentation-Klasse.
  2. Rufen Sie die Referenz einer Folie über ihren Index ab.
  3. Fügen Sie ein Diagramm mit Standarddaten und dem gewünschten Typ (ChartType.PictureOrganizationChart) hinzu.
  4. Schreiben Sie die geänderte Präsentation in eine PPTX‑Datei.

Der folgende Code wird verwendet, um ein Diagramm zu erstellen.

Presentation pres = new Presentation("test.pptx");
try {
    ISmartArt smartArt = pres.getSlides().get_Item(0).getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart);
    pres.save("OrganizationChart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

SmartArt‑Zustand abrufen oder festlegen

Um den Layouttyp von SmartArt zu ändern, folgen Sie den untenstehenden Schritten:

  1. Erstellen Sie eine Instanz der Presentation-Klasse.
  2. Fügen Sie SmartArt auf einer Folie hinzu.
  3. Get oder Set Sie den Zustand des SmartArt‑Diagramms.
  4. Schreiben Sie die Präsentation als PPTX‑Datei.

Der folgende Code wird verwendet, um ein Diagramm zu erstellen.

// Instanziieren der Presentation-Klasse, die die PPTX-Datei darstellt
Presentation pres = new Presentation();
try {
    // SmartArt BasicProcess hinzufügen
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicProcess);
    
    // Abrufen oder Festlegen des Zustands des SmartArt-Diagramms
    smart.setReversed(true);
    boolean flag = smart.isReversed();
    
    // Präsentation speichern
    pres.save("output.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

FAQ

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

Ja. Die Methode setReversed schaltet die Diagrammrichtung (LTR/RTL) um, wenn der ausgewählte SmartArt‑Typ eine Umkehr unterstützt.

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

Sie können die SmartArt‑Form über die Shapes‑Sammlung clone the SmartArt shape (ShapeCollection.addClone) oder die gesamte Folie, die diese Form enthält, clone the entire slide duplizieren. Beide Ansätze erhalten Größe, Position und Stil.

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

Render the slide (oder die gesamte Präsentation) zu PNG/JPEG über die API, die Folien/Präsentationen in Bilder konvertiert – SmartArt wird dabei als Teil der Folie gezeichnet.

Wie kann ich programmgesteuert ein bestimmtes SmartArt auf einer Folie auswählen, wenn mehrere vorhanden sind?

Eine gängige Methode ist die Verwendung von alternative text (Alt‑Text) oder einem name und das Suchen nach der Form anhand dieses Attributs innerhalb der slide shapes. Anschließend prüfen Sie den Typ, um sicherzustellen, dass es sich um ein SmartArt handelt. Die Dokumentation beschreibt typische Techniken zum Finden und Arbeiten mit Formen.