Erstellen oder Verwalten von PowerPoint SmartArt-Former-Knoten in Java

SmartArt-Knoten in PowerPoint-Präsentation mit Java hinzufügen

Aspose.Slides für Android über Java bietet die einfachste API zur Verwaltung von SmartArt-Formen auf die einfachste Weise. Der folgende Beispielcode hilft Ihnen, einen Knoten und einen untergeordneten Knoten innerhalb einer SmartArt-Form hinzuzufügen.

  1. Erstellen Sie eine Instanz der Presentation -Klasse und laden Sie die Präsentation mit der SmartArt-Form.
  2. Erlangen Sie das Referenz zur ersten Folie mithilfe ihres Index.
  3. Durchlaufen Sie jede Form innerhalb der ersten Folie.
  4. Überprüfen Sie, ob die Form vom Typ SmartArt ist, und typisieren Sie die ausgewählte Form in SmartArt, wenn es sich um SmartArt handelt.
  5. Fügen Sie einen neuen Knoten in der SmartArt-Form NodeCollection hinzu und setzen Sie den Text im TextFrame.
  6. Fügen Sie nun einen Unterknoten in den neu hinzugefügten SmartArt Knoten hinzu und setzen Sie den Text im TextFrame.
  7. Speichern Sie die Präsentation.
// Laden der gewünschten Präsentation
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
    // Durchlaufen Sie jede Form innerhalb der ersten Folie
    for (IShape shape : pres.getSlides().get_Item(0).getShapes()) 
    {
        // Überprüfen Sie, ob die Form vom Typ SmartArt ist
        if (shape instanceof SmartArt) 
        {
            // Die Form in SmartArt typisieren
            SmartArt smart = (SmartArt) shape;

            // Hinzufügen eines neuen SmartArt-Knotens
            SmartArtNode TemNode = (SmartArtNode) smart.getAllNodes().addNode();

            // Hinzufügen von Text
            TemNode.getTextFrame().setText("Test");

            // Hinzufügen eines neuen Unterknotens im übergeordneten Knoten. Er wird am Ende der Sammlung hinzugefügt
            SmartArtNode newNode = (SmartArtNode) TemNode.getChildNodes().addNode();

            // Hinzufügen von Text
            newNode.getTextFrame().setText("Neuer Knoten hinzugefügt");
        }
    }

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

SmartArt-Knoten an spezifischer Position hinzufügen

Im folgenden Beispielcode wird erläutert, wie man die untergeordneten Knoten, die zu den entsprechenden Knoten der SmartArt-Form gehören, an einer bestimmten Position hinzufügt.

  1. Erstellen Sie eine Instanz der Presentation-Klasse.
  2. Erlangen Sie das Referenz zur ersten Folie mithilfe ihres Index.
  3. Fügen Sie eine StackedList Typ SmartArt Form in die zugegriffene Folie hinzu.
  4. Greifen Sie auf den ersten Knoten in der hinzugefügten SmartArt-Form zu.
  5. Fügen Sie nun den Unterknoten für den ausgewählten Knoten an Position 2 hinzu und setzen Sie seinen Text.
  6. Speichern Sie die Präsentation.
// Erstellen einer Präsentationsinstanz
Presentation pres = new Presentation();
try {
    // Zugriff auf die Präsentationsfolie
    ISlide slide = pres.getSlides().get_Item(0);

    // Hinzufügen von Smart Art IShape
    ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.StackedList);

    // Zugriff auf den SmartArt-Knoten bei Index 0
    ISmartArtNode node = smart.getAllNodes().get_Item(0);

    // Hinzufügen eines neuen Unterknotens an Position 2 im übergeordneten Knoten
    SmartArtNode chNode = (SmartArtNode) ((SmartArtNodeCollection) node.getChildNodes()).addNodeByPosition(2);

    // Text hinzufügen
    chNode.getTextFrame().setText("Beispielftext hinzugefügt");

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

Zugriff auf SmartArt-Knoten in PowerPoint-Präsentation mit Java

Der folgende Beispielcode hilft Ihnen, auf Knoten innerhalb einer SmartArt-Form zuzugreifen. Bitte beachten Sie, dass Sie den LayoutType der SmartArt nicht ändern können, da er schreibgeschützt ist und nur festgelegt wird, wenn die SmartArt-Form hinzugefügt wird.

  1. Erstellen Sie eine Instanz der Presentation -Klasse und laden Sie die Präsentation mit der SmartArt-Form.
  2. Erlangen Sie das Referenz zur ersten Folie mithilfe ihres Index.
  3. Durchlaufen Sie jede Form innerhalb der ersten Folie.
  4. Überprüfen Sie, ob die Form vom Typ SmartArt ist und typisieren Sie die ausgewählte Form in SmartArt, wenn es sich um SmartArt handelt.
  5. Durchlaufen Sie alle Knoten innerhalb der SmartArt-Form.
  6. Greifen Sie auf Informationen wie SmartArt-Knotenposition, Ebene und Text zu und zeigen Sie sie an.
// Instanziieren der Präsentationsklasse
Presentation pres = new Presentation("SmartArtShape.pptx");
try {
    // Erhalten der ersten Folie
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Durchlaufen Sie jede Form innerhalb der ersten Folie
    for (IShape shape : slide.getShapes()) 
    {
        // Überprüfen Sie, ob die Form vom Typ SmartArt ist
        if (shape instanceof ISmartArt) 
        {
            // Die Form in SmartArt typisieren
            ISmartArt smart = (ISmartArt) shape;
    
            // Durchlaufen Sie alle Knoten innerhalb der SmartArt
            for (int i = 0; i < smart.getAllNodes().size(); i++) 
            {
                // Zugriff auf den SmartArt-Knoten bei Index i
                SmartArtNode node = (SmartArtNode) smart.getAllNodes().get_Item(i);
    
                // Drucken der Parameter des SmartArt-Knotens
                System.out.print(node.getTextFrame().getText() + " " + node.getLevel() + " " + node.getPosition());
            }
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

Zugriff auf SmartArt-Unterknoten

Der folgende Beispielcode hilft Ihnen, auf die untergeordneten Knoten zuzugreifen, die zu den jeweiligen Knoten der SmartArt-Form gehören.

  1. Erstellen Sie eine Instanz der Presentation -Klasse und laden Sie die Präsentation mit der SmartArt-Form.
  2. Erlangen Sie das Referenz zur ersten Folie mithilfe ihres Index.
  3. Durchlaufen Sie jede Form innerhalb der ersten Folie.
  4. Überprüfen Sie, ob die Form vom Typ SmartArt ist und typisieren Sie die ausgewählte Form in SmartArt, wenn es sich um SmartArt handelt.
  5. Durchlaufen Sie alle Knoten innerhalb der SmartArt-Form.
  6. Für jeden ausgewählten SmartArt-Form Knoten durchlaufen Sie alle Unterknoten innerhalb eines bestimmten Knotens.
  7. Greifen Sie auf Informationen wie Unterknoten Position, Ebene und Text zu und zeigen Sie sie an.
// Instanziieren der Präsentationsklasse
Presentation pres = new Presentation("AccessChildNodes.pptx");
try {
    // Erhalten der ersten Folie
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Durchlaufen Sie jede Form innerhalb der ersten Folie
    for (IShape shape : slide.getShapes()) 
    {
        // Überprüfen Sie, ob die Form vom Typ SmartArt ist
        if (shape instanceof ISmartArt) 
        {
            // Die Form in SmartArt typisieren
            ISmartArt smart = (ISmartArt) shape;
    
            // Durchlaufen Sie alle Knoten innerhalb der SmartArt
            for (int i = 0; i < smart.getAllNodes().size(); i++) 
            {
                // Zugriff auf den SmartArt-Knoten bei Index i
                SmartArtNode node0 = (SmartArtNode) smart.getAllNodes().get_Item(i);
                
                // Durchlaufen der untergeordneten Knoten im SmartArt-Knoten bei Index i
                for (int j = 0; j < node0.getChildNodes().size(); j++) 
                {
                    // Zugriff auf den Unterknoten im SmartArt-Knoten
                    SmartArtNode node = (SmartArtNode) node0.getChildNodes().get_Item(j);
    
                    // Drucken der Parameter des SmartArt-Unterknotens
                    System.out.print("j = " + j + ", Text = " + node.getTextFrame().getText() + ",  Ebene = " + node.getLevel() + ", Position = " + node.getPosition());
                }
            }
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

Zugriff auf SmartArt-Unterknoten an spezifischer Position

In diesem Beispiel lernen wir, wie man auf die untergeordneten Knoten an einer bestimmten Position zugreift, die zu den jeweiligen Knoten der SmartArt-Form gehören.

  1. Erstellen Sie eine Instanz der Presentation -Klasse.
  2. Erlangen Sie das Referenz zur ersten Folie mithilfe ihres Index.
  3. Fügen Sie eine StackedList Typ SmartArt-Form hinzu.
  4. Greifen Sie auf die hinzugefügte SmartArt-Form zu.
  5. Greifen Sie auf den Knoten bei Index 0 für die zugegriffene SmartArt-Form zu.
  6. Nun, greifen Sie auf den Unterknoten an Position 1 für den zugegriffenen SmartArt-Knoten mit der Methode get_Item() zu.
  7. Greifen Sie auf Informationen wie Unterknoten Position, Ebene und Text zu und zeigen Sie sie an.
// Instanziieren der Präsentation
Presentation pres = new Presentation();
try {
    // Zugriff auf die erste Folie
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Hinzufügen der SmartArt-Form in die erste Folie
    ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.StackedList);
    
    // Zugriff auf den SmartArt-Knoten bei Index 0
    ISmartArtNode node = smart.getAllNodes().get_Item(0);
    
    // Zugriff auf den Unterknoten an Position 1 im übergeordneten Knoten
    int position = 1;
    SmartArtNode chNode = (SmartArtNode) ((SmartArtNodeCollection) node.getChildNodes()).get_Item(position);
    
    // Drucken der Parameter des SmartArt-Unterknotens
    System.out.print("Text = " + chNode.getTextFrame().getText() + ",  Ebene = " + chNode.getLevel() + ", Position = " + chNode.getPosition());
} finally {
    if (pres != null) pres.dispose();
}

Entfernen von SmartArt-Knoten in PowerPoint-Präsentationen mit Java

In diesem Beispiel lernen wir, wie man die Knoten innerhalb einer SmartArt-Form entfernt.

  1. Erstellen Sie eine Instanz der Presentation -Klasse und laden Sie die Präsentation mit der SmartArt-Form.
  2. Erlangen Sie das Referenz zur ersten Folie mithilfe ihres Index.
  3. Durchlaufen Sie jede Form innerhalb der ersten Folie.
  4. Überprüfen Sie, ob die Form vom Typ SmartArt ist und typisieren Sie die ausgewählte Form in SmartArt, wenn es sich um SmartArt handelt.
  5. Überprüfen Sie, ob die SmartArt mehr als 0 Knoten hat.
  6. Wählen Sie den SmartArt-Knoten aus, der gelöscht werden soll.
  7. Entfernen Sie nun den ausgewählten Knoten mit der Methode RemoveNode.
  8. Speichern Sie die Präsentation.
// Laden der gewünschten Präsentation
Presentation pres = new Presentation("AddSmartArtNode.pptx");
try {
    // Durchlaufen Sie jede Form innerhalb der ersten Folie
    for (IShape shape : pres.getSlides().get_Item(0).getShapes()) 
    {
        // Überprüfen Sie, ob die Form vom Typ SmartArt ist
        if (shape instanceof ISmartArt) 
        {
            // Die Form in SmartArt typisieren
            ISmartArt smart = (ISmartArt) shape;
    
            if (smart.getAllNodes().size() > 0) 
            {
                // Zugriff auf den SmartArt-Knoten bei Index 0
                ISmartArtNode node = smart.getAllNodes().get_Item(0);
    
                // Entfernen des ausgewählten Knotens
                smart.getAllNodes().removeNode(node);
            }
        }
    }
    
    // Speichern der Präsentation
    pres.save("RemoveSmartArtNode.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Entfernen von SmartArt-Knoten an spezifischer Position

In diesem Beispiel lernen wir, wie man die Knoten innerhalb einer SmartArt-Form an einer bestimmten Position entfernt.

  1. Erstellen Sie eine Instanz der Presentation -Klasse und laden Sie die Präsentation mit der SmartArt-Form.
  2. Erlangen Sie das Referenz zur ersten Folie mithilfe ihres Index.
  3. Durchlaufen Sie jede Form innerhalb der ersten Folie.
  4. Überprüfen Sie, ob die Form vom Typ SmartArt ist und typisieren Sie die ausgewählte Form in SmartArt, wenn es sich um SmartArt handelt.
  5. Wählen Sie den SmartArt-Form-Knoten bei Index 0 aus.
  6. Überprüfen Sie nun, ob der ausgewählte SmartArt-Knoten mehr als 2 untergeordnete Knoten hat.
  7. Entfernen Sie nun den Knoten an Position 1 mit der Methode RemoveNode Methode.
  8. Speichern Sie die Präsentation.
// Laden der gewünschten Präsentation
Presentation pres = new Presentation("AddSmartArtNode.pptx");
try {
    // Durchlaufen Sie jede Form innerhalb der ersten Folie
    for (IShape shape : pres.getSlides().get_Item(0).getShapes()) 
    {
        // Überprüfen Sie, ob die Form vom Typ SmartArt ist
        if (shape instanceof SmartArt) 
        {
            // Die Form in SmartArt typisieren
            SmartArt smart = (SmartArt) shape;
    
            if (smart.getAllNodes().size() > 0) 
            {
                // Zugriff auf den SmartArt-Knoten bei Index 0
                ISmartArtNode node = smart.getAllNodes().get_Item(0);
    
                if (node.getChildNodes().size() >= 2) 
                {
                    // Entfernen des Kindknotens an Position 1
                    (node.getChildNodes()).removeNode(1);
                }
            }
        }
    }
    
    // Speichern der Präsentation
    pres.save("RemoveSmartArtNodeByPosition.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Benutzerdefinierte Position für Unterknoten in SmartArt festlegen

Jetzt unterstützt Aspose.Slides für Android über Java die Festlegung der SmartArtShape X und Y Eigenschaften. Der folgende Codeausschnitt zeigt, wie man die benutzerdefinierte SmartArtShape-Position, -Größe und -Drehung festlegt. Bitte beachten Sie, dass das Hinzufügen neuer Knoten eine Neuberechnung der Positionen und Größen aller Knoten verursacht. Außerdem können Benutzer mit benutzerdefinierten Positionseinstellungen die Knoten gemäß ihren Anforderungen einstellen.

// Instanziieren der Präsentationsklasse
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try{
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(20, 20, 600, 500, SmartArtLayoutType.OrganizationChart);
    
    // Bewege die SmartArt-Form zu einer neuen Position
    ISmartArtNode node = smart.getAllNodes().get_Item(1);
    ISmartArtShape shape = node.getShapes().get_Item(1);
    shape.setX(shape.getX() + shape.getWidth() * 2);
    shape.setY(shape.getY() - shape.getHeight() * 2);

    // Ändere die Breiten der SmartArt-Form
    node = smart.getAllNodes().get_Item(2);
    shape = node.getShapes().get_Item(1);
    shape.setWidth(shape.getWidth() + shape.getWidth() * 2);

    // Ändere die Höhe der SmartArt-Form
    node = smart.getAllNodes().get_Item(3);
    shape = node.getShapes().get_Item(1);
    shape.setHeight(shape.getHeight() + shape.getHeight() * 2);

    // Ändere die Drehung der SmartArt-Form
    node = smart.getAllNodes().get_Item(4);
    shape = node.getShapes().get_Item(1);
    shape.setRotation(90);

    pres.save("SmartArt.pptx", SaveFormat.Pptx);
}finally {
    pres.dispose();
}

Assistenten-Knoten überprüfen

Wir werden die folgende Quell-SmartArt-Form für unsere Untersuchung in verschiedenen Abschnitten dieses Artikels verwenden.

todo:image_alt_text
Abbildung: Quell-SmartArt-Form in der Folie

Im folgenden Beispielcode werden wir untersuchen, wie man Assistenten-Knoten in der Sammlung von SmartArt-Knoten identifiziert und sie ändert.

  1. Erstellen Sie eine Instanz der Presentation -Klasse und laden Sie die Präsentation mit der SmartArt-Form.
  2. Erlangen Sie das Referenz zur zweiten Folie mithilfe ihres Index.
  3. Durchlaufen Sie jede Form innerhalb der ersten Folie.
  4. Überprüfen Sie, ob die Form vom Typ SmartArt ist und typisieren Sie die ausgewählte Form in SmartArt, wenn es sich um SmartArt handelt.
  5. Durchlaufen Sie alle Knoten innerhalb der SmartArt-Form und überprüfen Sie, ob sie Assistenten-Knoten sind.
  6. Ändern Sie den Status des Assistenten-Knotens in einen normalen Knoten.
  7. Speichern Sie die Präsentation.
// Erstellen einer Präsentationsinstanz
Presentation pres = new Presentation("AddNodes.pptx");
try {
    // Durchlaufen Sie jede Form innerhalb der ersten Folie
    for (IShape shape : pres.getSlides().get_Item(0).getShapes()) 
    {
        // Überprüfen Sie, ob die Form vom Typ SmartArt ist
        if (shape instanceof ISmartArt) 
        {
            // Die Form in SmartArt typisieren
            ISmartArt smart = (SmartArt) shape;
    
            // Durchlaufen Sie alle Knoten der SmartArt-Form
            for (int i = 0; i < smart.getAllNodes().size(); i++) 
            {
                ISmartArtNode node = smart.getAllNodes().get_Item(i);
                // Überprüfen Sie, ob der Knoten ein Assistentenknoten ist
                if (node.isAssistant()) 
                {
                    // Setzen Sie den Assistenten-Knoten auf falsch und machen Sie ihn zu einem normalen Knoten
                    node.isAssistant();
                }
            }
        }
    }
    
    // Speichern der Präsentation
    pres.save("ChangeAssitantNode.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
todo:image_alt_text
Abbildung: Assistenten-Knoten in der SmartArt-Form innerhalb der Folie geändert

Festlegen des Füllformats eines Knotens

Aspose.Slides für Android über Java ermöglicht es, benutzerdefinierte SmartArt-Formen hinzuzufügen und deren Füllformat festzulegen. Dieser Artikel erklärt, wie man SmartArt-Formen erstellt und darauf zugreift sowie das Füllformat mit Aspose.Slides für Android über Java festlegt.

Bitte folgen Sie den folgenden Schritten:

  1. Erstellen Sie eine Instanz der Presentation -Klasse.
  2. Erlangen Sie das Referenz zu einer Folie mithilfe ihres Index.
  3. Fügen Sie eine SmartArt -Form hinzu, indem Sie ihren LayoutType festlegen.
  4. Legen Sie das FillFormat für die SmartArt-Formknoten fest.
  5. Schreiben Sie die modifizierte Präsentation als PPTX-Datei.
// Instanziieren der Präsentation
Presentation pres = new Presentation();
try {
    // Zugriff auf die Folie
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Hinzufügen von SmartArt-Form und Knoten
    ISmartArt chevron = slide.getShapes().addSmartArt(10, 10, 800, 60, SmartArtLayoutType.ClosedChevronProcess);
    ISmartArtNode node = chevron.getAllNodes().addNode();
    node.getTextFrame().setText("Einige Texte");
    
    // Festlegen der Füllfarbe des Knotens
    for (IShape item : node.getShapes()) 
    {
        item.getFillFormat().setFillType(FillType.Solid);
        item.getFillFormat().getSolidFillColor().setColor(Color.RED);
    }
    
    // Speichern der Präsentation
    pres.save("TestSmart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Thumbnail des SmartArt-Unterknotens generieren

Entwickler können ein Thumbnail des Unterknotens einer SmartArt generieren, indem sie die folgenden Schritte befolgen:

  1. Erstellen Sie eine Instanz der Presentation -Klasse.
  2. Fügen Sie SmartArt hinzu.
  3. Erlangen Sie das Referenz zu einem Knoten mithilfe seines Index.
  4. Holen Sie das Thumbnail-Bild.
  5. Speichern Sie das Thumbnail-Bild in jedem gewünschten Bildformat.
// Instanziieren der Präsentationsklasse, die die PPTX-Datei darstellt 
Presentation pres = new Presentation();
try {
    // Hinzufügen von SmartArt 
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicCycle);

    // Erlangen Sie das Referenz zu einem Knoten mithilfe seines Index  
    ISmartArtNode node = smart.getNodes().get_Item(1);

    // Holen Sie das Thumbnail
    IImage slideImage = node.getShapes().get_Item(0).getImage();

    // Speichern des Thumbnails
    try {
          slideImage.save("SmartArt_ChildNote_Thumbnail.png", ImageFormat.Png);
    } finally {
         if (slideImage != null) slideImage.dispose();
    }
} finally {
    if (pres != null) pres.dispose();
}