Créer ou gérer un nœud de forme SmartArt PowerPoint en Java

Ajouter un nœud SmartArt dans une présentation PowerPoint en utilisant Java

Aspose.Slides pour Android via Java a fourni la plus simple API pour gérer les formes SmartArt de la manière la plus facile. Le code exemple suivant aidera à ajouter un nœud et un nœud enfant à l’intérieur de la forme SmartArt.

  1. Créez une instance de la classe Presentation et chargez la présentation avec la forme SmartArt.
  2. Obtenez la référence de la première diapositive en utilisant son index.
  3. Parcourez chaque forme dans la première diapositive.
  4. Vérifiez si la forme est de type SmartArt et convertissez la forme sélectionnée en SmartArt si c’est un SmartArt.
  5. Ajoutez un nouveau nœud dans la forme SmartArt NodeCollection et définissez le texte dans TextFrame.
  6. Maintenant, ajoutez un nœud enfant dans le nœud SmartArt nouvellement ajouté et définissez le texte dans TextFrame.
  7. Enregistrez la présentation.
// Charger la présentation souhaitée
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
    // Parcourez chaque forme dans la première diapositive
    for (IShape shape : pres.getSlides().get_Item(0).getShapes()) 
    {
        // Vérifiez si la forme est de type SmartArt
        if (shape instanceof SmartArt) 
        {
            // Convertissez la forme en SmartArt
            SmartArt smart = (SmartArt) shape;
    
            // Ajouter un nouveau nœud SmartArt
            SmartArtNode TemNode = (SmartArtNode) smart.getAllNodes().addNode();
    
            // Ajouter du texte
            TemNode.getTextFrame().setText("Test");
    
            // Ajouter un nouveau nœud enfant dans le nœud parent. Il sera ajouté à la fin de la collection
            SmartArtNode newNode = (SmartArtNode) TemNode.getChildNodes().addNode();
    
            // Ajouter du texte
            newNode.getTextFrame().setText("Nouveau nœud ajouté");
        }
    }
    
    // Enregistrer la présentation
    pres.save("AddSmartArtNode.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Ajouter un nœud SmartArt à une position spécifique

Dans le code exemple suivant, nous avons expliqué comment ajouter les nœuds enfants appartenant aux nœuds respectifs de la forme SmartArt à une position particulière.

  1. Créez une instance de la classe Presentation.
  2. Obtenez la référence de la première diapositive en utilisant son index.
  3. Ajoutez une forme SmartArt de type StackedList dans la diapositive accédée.
  4. Accédez au premier nœud de la forme SmartArt ajoutée.
  5. Maintenant, ajoutez le nœud enfant pour le nœud sélectionné à la position 2 et définissez son texte.
  6. Enregistrez la présentation.
// Création d'une instance de présentation
Presentation pres = new Presentation();
try {
    // Accédez à la diapositive de la présentation
    ISlide slide = pres.getSlides().get_Item(0);

    // Ajoutez Smart Art IShape
    ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.StackedList);

    // Accédez au nœud SmartArt à l'index 0
    ISmartArtNode node = smart.getAllNodes().get_Item(0);

    // Ajouter un nouveau nœud enfant à la position 2 dans le nœud parent
    SmartArtNode chNode = (SmartArtNode) ((SmartArtNodeCollection) node.getChildNodes()).addNodeByPosition(2);

    // Ajouter du texte
    chNode.getTextFrame().setText("Texte d'exemple ajouté");

    // Enregistrer la présentation
    pres.save("AddSmartArtNodeByPosition.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Accéder au nœud SmartArt dans une présentation PowerPoint en utilisant Java

Le code exemple suivant aidera à accéder aux nœuds à l’intérieur de la forme SmartArt. Veuillez noter que vous ne pouvez pas changer le LayoutType du SmartArt car il est en lecture seule et est défini uniquement lorsque la forme SmartArt est ajoutée.

  1. Créez une instance de la classe Presentation et chargez la présentation avec la forme SmartArt.
  2. Obtenez la référence de la première diapositive en utilisant son index.
  3. Parcourez chaque forme dans la première diapositive.
  4. Vérifiez si la forme est de type SmartArt et convertissez la forme sélectionnée en SmartArt si c’est un SmartArt.
  5. Parcourez tous les nœuds à l’intérieur de la forme SmartArt.
  6. Accédez et affichez des informations telles que la position du nœud SmartArt, le niveau et le texte.
// Instancier la classe Presentation
Presentation pres = new Presentation("SmartArtShape.pptx");
try {
    // Obtenez la première diapositive
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Parcourez chaque forme dans la première diapositive
    for (IShape shape : slide.getShapes()) 
    {
        // Vérifiez si la forme est de type SmartArt
        if (shape instanceof ISmartArt) 
        {
            // Convertissez la forme en SmartArt
            ISmartArt smart = (ISmartArt) shape;
    
            // Parcourez tous les nœuds à l'intérieur de SmartArt
            for (int i = 0; i < smart.getAllNodes().size(); i++) 
            {
                // Accédez au nœud SmartArt à l'index i
                SmartArtNode node = (SmartArtNode) smart.getAllNodes().get_Item(i);
    
                // Impression des paramètres du nœud SmartArt
                System.out.print(node.getTextFrame().getText() + " " + node.getLevel() + " " + node.getPosition());
            }
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

Accéder au nœud enfant SmartArt

Le code exemple suivant aidera à accéder aux nœuds enfants appartenant aux nœuds respectifs de la forme SmartArt.

  1. Créez une instance de la classe Presentation et chargez la présentation avec la forme SmartArt.
  2. Obtenez la référence de la première diapositive en utilisant son index.
  3. Parcourez chaque forme dans la première diapositive.
  4. Vérifiez si la forme est de type SmartArt et convertissez la forme sélectionnée en SmartArt si c’est un SmartArt.
  5. Parcourez tous les nœuds à l’intérieur de la forme SmartArt.
  6. Pour chaque nœud SmartArt sélectionné Node, parcourez tous les nœuds enfants à l’intérieur du nœud particulier.
  7. Accédez et affichez des informations telles que la position, le niveau et le texte du nœud enfant.
// Instancier la classe Presentation
Presentation pres = new Presentation("AccessChildNodes.pptx");
try {
    // Obtenez la première diapositive
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Parcourez chaque forme dans la première diapositive
    for (IShape shape : slide.getShapes()) 
    {
        // Vérifiez si la forme est de type SmartArt
        if (shape instanceof ISmartArt) 
        {
            // Convertissez la forme en SmartArt
            ISmartArt smart = (ISmartArt) shape;
    
            // Parcourez tous les nœuds à l'intérieur de SmartArt
            for (int i = 0; i < smart.getAllNodes().size(); i++) 
            {
                // Accédez au nœud SmartArt à l'index i
                SmartArtNode node0 = (SmartArtNode) smart.getAllNodes().get_Item(i);
                
                // Parcourez les nœuds enfants dans le nœud SmartArt à l'index i
                for (int j = 0; j < node0.getChildNodes().size(); j++) 
                {
                    // Accédez au nœud enfant dans le nœud SmartArt
                    SmartArtNode node = (SmartArtNode) node0.getChildNodes().get_Item(j);
    
                    // Imprimez les paramètres du nœud enfant SmartArt
                    System.out.print("j = " + j + ", Texte = " + node.getTextFrame().getText() + ",  Niveau = " + node.getLevel() + ", Position = " + node.getPosition());
                }
            }
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

Accéder au nœud enfant SmartArt à une position spécifique

Dans cet exemple, nous allons apprendre à accéder aux nœuds enfants à une position partielle appartenant aux nœuds respectifs de la forme SmartArt.

  1. Créez une instance de la classe Presentation.
  2. Obtenez la référence de la première diapositive en utilisant son index.
  3. Ajoutez une forme SmartArt de type StackedList.
  4. Accédez à la forme SmartArt ajoutée.
  5. Accédez au nœud à l’index 0 pour la forme SmartArt accédée.
  6. Maintenant, accédez au nœud enfant à la position 1 pour le nœud SmartArt accédé en utilisant la méthode get_Item().
  7. Accédez et affichez des informations telles que la position, le niveau et le texte du nœud enfant.
// Instancier la présentation
Presentation pres = new Presentation();
try {
    // Accédez à la première diapositive
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Ajoutez la forme SmartArt dans la première diapositive
    ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.StackedList);
    
    // Accédez au nœud SmartArt à l'index 0
    ISmartArtNode node = smart.getAllNodes().get_Item(0);
    
    // Accédez au nœud enfant à la position 1 dans le nœud parent
    int position = 1;
    SmartArtNode chNode = (SmartArtNode) ((SmartArtNodeCollection) node.getChildNodes()).get_Item(position);
    
    // Imprimez les paramètres du nœud enfant SmartArt
    System.out.print("Texte = " + chNode.getTextFrame().getText() + ",  Niveau = " + chNode.getLevel() + ", Position = " + chNode.getPosition());
} finally {
    if (pres != null) pres.dispose();
}

Supprimer un nœud SmartArt dans une présentation PowerPoint utilisant Java

Dans cet exemple, nous allons apprendre à supprimer les nœuds à l’intérieur de la forme SmartArt.

  1. Créez une instance de la classe Presentation et chargez la présentation avec la forme SmartArt.
  2. Obtenez la référence de la première diapositive en utilisant son index.
  3. Parcourez chaque forme dans la première diapositive.
  4. Vérifiez si la forme est de type SmartArt et convertissez la forme sélectionnée en SmartArt si c’est un SmartArt.
  5. Vérifiez si le SmartArt a plus de 0 nœuds.
  6. Sélectionnez le nœud SmartArt à supprimer.
  7. Maintenant, supprimez le nœud sélectionné en utilisant la méthode RemoveNode.
  8. Enregistrez la présentation.
// Charger la présentation souhaitée
Presentation pres = new Presentation("AddSmartArtNode.pptx");
try {
    // Parcourez chaque forme dans la première diapositive
    for (IShape shape : pres.getSlides().get_Item(0).getShapes()) 
    {
        // Vérifiez si la forme est de type SmartArt
        if (shape instanceof ISmartArt) 
        {
            // Convertissez la forme en SmartArt
            ISmartArt smart = (ISmartArt) shape;
    
            if (smart.getAllNodes().size() > 0) 
            {
                // Accédez au nœud SmartArt à l'index 0
                ISmartArtNode node = smart.getAllNodes().get_Item(0);
    
                // Supprimer le nœud sélectionné
                smart.getAllNodes().removeNode(node);
            }
        }
    }
    
    // Enregistrez la présentation
    pres.save("RemoveSmartArtNode.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Supprimer un nœud SmartArt à une position spécifique

Dans cet exemple, nous allons apprendre à supprimer les nœuds à l’intérieur de la forme SmartArt à une position particulière.

  1. Créez une instance de la classe Presentation et chargez la présentation avec la forme SmartArt.
  2. Obtenez la référence de la première diapositive en utilisant son index.
  3. Parcourez chaque forme dans la première diapositive.
  4. Vérifiez si la forme est de type SmartArt et convertissez la forme sélectionnée en SmartArt si c’est un SmartArt.
  5. Sélectionnez le nœud de forme SmartArt à l’index 0.
  6. Maintenant, vérifiez si le nœud SmartArt sélectionné a plus de 2 nœuds enfants.
  7. Maintenant, supprimez le nœud à la position 1 en utilisant la méthode RemoveNode.
  8. Enregistrez la présentation.
// Charger la présentation souhaitée
Presentation pres = new Presentation("AddSmartArtNode.pptx");
try {
    // Parcourez chaque forme dans la première diapositive
    for (IShape shape : pres.getSlides().get_Item(0).getShapes()) 
    {
        // Vérifiez si la forme est de type SmartArt
        if (shape instanceof SmartArt) 
        {
            // Convertissez la forme en SmartArt
            SmartArt smart = (SmartArt) shape;
    
            if (smart.getAllNodes().size() > 0) 
            {
                // Accédez au nœud SmartArt à l'index 0
                ISmartArtNode node = smart.getAllNodes().get_Item(0);
    
                if (node.getChildNodes().size() >= 2) 
                {
                    // Supprimer le nœud enfant à la position 1
                    (node.getChildNodes()).removeNode(1);
                }
            }
        }
    }
    
    // Enregistrez la présentation
    pres.save("RemoveSmartArtNodeByPosition.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Définir une position personnalisée pour le nœud enfant dans SmartArt

Maintenant, Aspose.Slides pour Android via Java prend en charge la définition des propriétés X et Y de SmartArtShape. Le snippet de code ci-dessous montre comment définir la position, la taille et la rotation personnalisées pour SmartArtShape. Veuillez noter que l’ajout de nouveaux nœuds entraîne un recalcul des positions et des tailles de tous les nœuds. Également avec les paramètres de position personnalisés, l’utilisateur peut définir les nœuds selon les exigences.

// Instancier la classe Presentation
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(20, 20, 600, 500, SmartArtLayoutType.OrganizationChart);

    // Déplacer la forme SmartArt vers une nouvelle 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);

    // Changer les largeurs des formes SmartArt
    node = smart.getAllNodes().get_Item(2);
    shape = node.getShapes().get_Item(1);
    shape.setWidth(shape.getWidth() + shape.getWidth() * 2);

    // Changer la hauteur des formes SmartArt
    node = smart.getAllNodes().get_Item(3);
    shape = node.getShapes().get_Item(1);
    shape.setHeight(shape.getHeight() + shape.getHeight() * 2);

    // Changer la rotation des formes SmartArt
    node = smart.getAllNodes().get_Item(4);
    shape = node.getShapes().get_Item(1);
    shape.setRotation(90);

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

Vérifiez le nœud Assistant

Nous utiliserons la forme SmartArt source suivante pour notre investigation dans les différentes sections de cet article.

todo:image_alt_text
Figure : Forme SmartArt source dans la diapositive

Dans le code exemple suivant, nous allons examiner comment identifier les nœuds assistants dans la collection de nœuds SmartArt et les modifier.

  1. Créez une instance de la classe Presentation et chargez la présentation avec la forme SmartArt.
  2. Obtenez la référence de la deuxième diapositive en utilisant son index.
  3. Parcourez chaque forme dans la première diapositive.
  4. Vérifiez si la forme est de type SmartArt et convertissez la forme sélectionnée en SmartArt si c’est un SmartArt.
  5. Parcourez tous les nœuds à l’intérieur de la forme SmartArt et vérifiez s’ils sont nœuds assistants.
  6. Changez le statut du nœud assistant en nœud normal.
  7. Enregistrez la présentation.
// Création d'une instance de présentation
Presentation pres = new Presentation("AddNodes.pptx");
try {
    // Parcourez chaque forma dans la première diapositive
    for (IShape shape : pres.getSlides().get_Item(0).getShapes()) 
    {
        // Vérifiez si la forme est de type SmartArt
        if (shape instanceof ISmartArt) 
        {
            // Convertissez la forme en SmartArt
            ISmartArt smart = (SmartArt) shape;
    
            // Parcourez tous les nœuds de la forme SmartArt
            for (int i = 0; i < smart.getAllNodes().size(); i++) 
            {
                ISmartArtNode node = smart.getAllNodes().get_Item(i);
                // Vérifiez si le nœud est un nœud assistant
                if (node.isAssistant()) 
                {
                    // Définit le nœud assistant sur false et le transforme en nœud normal
                    node.isAssistant();
                }
            }
        }
    }
    
    // Enregistrez la présentation
    pres.save("ChangeAssitantNode.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
todo:image_alt_text
Figure : Nœuds assistants changés dans la forme SmartArt à l’intérieur de la diapositive

Définir le format de remplissage du nœud

Aspose.Slides pour Android via Java permet d’ajouter des formes SmartArt personnalisées et de définir leur format de remplissage. Cet article explique comment créer et accéder aux formes SmartArt et définir leur format de remplissage en utilisant Aspose.Slides pour Android via Java.

Veuillez suivre les étapes ci-dessous :

  1. Créez une instance de la classe Presentation.
  2. Obtenez la référence d’une diapositive en utilisant son index.
  3. Ajoutez une forme SmartArt en définissant son LayoutType.
  4. Définissez le FillFormat pour les nœuds de forme SmartArt.
  5. Écrivez la présentation modifiée sous forme de fichier PPTX.
// Instancier la présentation
Presentation pres = new Presentation();
try {
    // Accéder à la diapositive
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Ajouter la forme SmartArt et les nœuds
    ISmartArt chevron = slide.getShapes().addSmartArt(10, 10, 800, 60, SmartArtLayoutType.ClosedChevronProcess);
    ISmartArtNode node = chevron.getAllNodes().addNode();
    node.getTextFrame().setText("Un peu de texte");
    
    // Définir la couleur de remplissage du nœud
    for (IShape item : node.getShapes()) 
    {
        item.getFillFormat().setFillType(FillType.Solid);
        item.getFillFormat().getSolidFillColor().setColor(Color.RED);
    }
    
    // Enregistrer la présentation
    pres.save("TestSmart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Générer une miniature du nœud enfant de SmartArt

Les développeurs peuvent générer une miniature du nœud enfant d’un SmartArt en suivant les étapes ci-dessous :

  1. Créez une instance de la classe Presentation.
  2. Ajoutez SmartArt.
  3. Obtenez la référence d’un nœud en utilisant son index.
  4. Obtenez l’image miniature.
  5. Enregistrez l’image miniature dans n’importe quel format d’image souhaité.
// Instancier la classe Presentation qui représente le fichier PPTX 
Presentation pres = new Presentation();
try {
    // Ajouter SmartArt 
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicCycle);

    // Obtenez la référence d'un nœud en utilisant son index  
    ISmartArtNode node = smart.getNodes().get_Item(1);

    // Obtenez la miniature
    IImage slideImage = node.getShapes().get_Item(0).getImage();

    // Enregistrez la miniature
    try {
          slideImage.save("SmartArt_ChildNote_Thumbnail.png", ImageFormat.Png);
    } finally {
         if (slideImage != null) slideImage.dispose();
    }
} finally {
    if (pres != null) pres.dispose();
}