Créer ou Gérer un Nœud de Forme SmartArt PowerPoint en Java
Ajouter un Nœud SmartArt dans la Présentation PowerPoint en utilisant Java
Aspose.Slides pour Java a fourni la plus simple API pour gérer les formes SmartArt de la manière la plus facile. Le code sample suivant aidera à ajouter un nœud et un nœud enfant à l’intérieur de la forme SmartArt.
- Créer une instance de la classe Presentation et charger la présentation avec la forme SmartArt.
- Obtenez la référence de la première diapositive en utilisant son index.
- Parcourir chaque forme à l’intérieur de la première diapositive.
- Vérifiez si la forme est de type SmartArt et faites un cast de la forme sélectionnée en SmartArt si c’est SmartArt.
- Ajouter un nouveau Nœud dans la forme SmartArt NodeCollection et définir le texte dans le TextFrame.
- Maintenant, Ajouter un Nœud Enfant dans le Nœud SmartArt nouvellement ajouté et définir le texte dans le TextFrame.
- Enregistrez la Présentation.
// Charger la présentation souhaitée
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
// Parcourir chaque forme à l'intérieur de 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)
{
// Faire un cast de la forme en SmartArt
SmartArt smart = (SmartArt) shape;
// Ajout d'un nouveau nœud SmartArt
SmartArtNode TemNode = (SmartArtNode) smart.getAllNodes().addNode();
// Ajouter du texte
TemNode.getTextFrame().setText("Test");
// Ajout d'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 sample suivant, nous expliquons comment ajouter les nœuds enfants appartenant aux nœuds respectifs de la forme SmartArt à une position particulière.
- Créer une instance de la classe Presentation.
- Obtenez la référence de la première diapositive en utilisant son index.
- Ajouter une forme StackedList de type SmartArt dans la diapositive accessible.
- Accéder au premier nœud dans la forme SmartArt ajoutée.
- Maintenant, ajoutez le Nœud Enfant pour le Nœud sélectionné à la position 2 et définissez son texte.
- Enregistrez la Présentation.
// Créer une instance de présentation
Presentation pres = new Presentation();
try {
// Accéder à la diapositive de présentation
ISlide slide = pres.getSlides().get_Item(0);
// Ajouter Smart Art IShape
ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.StackedList);
// Accéder 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 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 la Présentation PowerPoint en utilisant Java
Le code sample suivant vous 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.
- Créer une instance de la classe Presentation et charger la présentation avec la forme SmartArt.
- Obtenez la référence de la première diapositive en utilisant son index.
- Parcourir chaque forme à l’intérieur de la première diapositive.
- Vérifiez si la forme est de type SmartArt et faites un cast de la forme sélectionnée en SmartArt si c’est SmartArt.
- Parcourir tous les Nœuds à l’intérieur de la forme SmartArt.
- 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 {
// Obtenir la première diapositive
ISlide slide = pres.getSlides().get_Item(0);
// Parcourir chaque forme à l'intérieur de la première diapositive
for (IShape shape : slide.getShapes())
{
// Vérifiez si la forme est de type SmartArt
if (shape instanceof ISmartArt)
{
// Faire un cast de la forme en SmartArt
ISmartArt smart = (ISmartArt) shape;
// Parcourir tous les nœuds à l'intérieur de SmartArt
for (int i = 0; i < smart.getAllNodes().size(); i++)
{
// Accéder au nœud SmartArt à l'index i
SmartArtNode node = (SmartArtNode) smart.getAllNodes().get_Item(i);
// Imprimer les 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 sample suivant vous aidera à accéder aux nœuds enfants appartenant aux nœuds respectifs de la forme SmartArt.
- Créer une instance de la classe Presentation et charger la présentation avec la forme SmartArt.
- Obtenez la référence de la première diapositive en utilisant son index.
- Parcourir chaque forme à l’intérieur de la première diapositive.
- Vérifiez si la forme est de type SmartArt et faites un cast de la forme sélectionnée en SmartArt si c’est SmartArt.
- Parcourir tous les Nœuds à l’intérieur de la forme SmartArt.
- Pour chaque Nœud SmartArt sélectionné, parcourez tous les Nœuds Enfants à l’intérieur du nœud particulier.
- 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 {
// Obtenir la première diapositive
ISlide slide = pres.getSlides().get_Item(0);
// Parcourir chaque forme à l'intérieur de la première diapositive
for (IShape shape : slide.getShapes())
{
// Vérifiez si la forme est de type SmartArt
if (shape instanceof ISmartArt)
{
// Faire un cast de la forme en SmartArt
ISmartArt smart = (ISmartArt) shape;
// Parcourir tous les nœuds à l'intérieur de SmartArt
for (int i = 0; i < smart.getAllNodes().size(); i++)
{
// Accéder au nœud SmartArt à l'index i
SmartArtNode node0 = (SmartArtNode) smart.getAllNodes().get_Item(i);
// Parcourir les nœuds enfants dans le nœud SmartArt à l'index i
for (int j = 0; j < node0.getChildNodes().size(); j++)
{
// Accéder au nœud enfant dans le nœud SmartArt
SmartArtNode node = (SmartArtNode) node0.getChildNodes().get_Item(j);
// Imprimer 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 certaine position appartenant aux nœuds respectifs de la forme SmartArt.
- Créer une instance de la classe Presentation.
- Obtenez la référence de la première diapositive en utilisant son index.
- Ajouter une forme de type StackedList.
- Accéder à la forme SmartArt ajoutée.
- Accéder au nœud à l’index 0 pour la forme SmartArt accessible.
- Maintenant, accédez au Nœud Enfant à la position 1 pour le nœud SmartArt accessible en utilisant la méthode get_Item().
- 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éder à la première diapositive
ISlide slide = pres.getSlides().get_Item(0);
// Ajouter la forme SmartArt dans la première diapositive
ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.StackedList);
// Accéder au nœud SmartArt à l'index 0
ISmartArtNode node = smart.getAllNodes().get_Item(0);
// Accéder au nœud enfant à la position 1 dans le nœud parent
int position = 1;
SmartArtNode chNode = (SmartArtNode) ((SmartArtNodeCollection) node.getChildNodes()).get_Item(position);
// Imprimer 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 la Présentation PowerPoint en utilisant Java
Dans cet exemple, nous allons apprendre à supprimer les nœuds à l’intérieur de la forme SmartArt.
- Créer une instance de la classe Presentation et charger la présentation avec la forme SmartArt.
- Obtenez la référence de la première diapositive en utilisant son index.
- Parcourir chaque forme à l’intérieur de la première diapositive.
- Vérifiez si la forme est de type SmartArt et faites un cast de la forme sélectionnée en SmartArt si c’est SmartArt.
- Vérifiez si le SmartArt a plus de 0 nœuds.
- Sélectionnez le nœud SmartArt à supprimer.
- Maintenant, supprimez le nœud sélectionné en utilisant la méthode RemoveNode.
- Enregistrez la Présentation.
// Charger la présentation souhaitée
Presentation pres = new Presentation("AddSmartArtNode.pptx");
try {
// Parcourir chaque forme à l'intérieur de 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)
{
// Faire un cast de la forme en SmartArt
ISmartArt smart = (ISmartArt) shape;
if (smart.getAllNodes().size() > 0)
{
// Accéder au nœud SmartArt à l'index 0
ISmartArtNode node = smart.getAllNodes().get_Item(0);
// Supprimer le nœud sélectionné
smart.getAllNodes().removeNode(node);
}
}
}
// Enregistrer 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.
- Créer une instance de la classe Presentation et charger la présentation avec la forme SmartArt.
- Obtenez la référence de la première diapositive en utilisant son index.
- Parcourir chaque forme à l’intérieur de la première diapositive.
- Vérifiez si la forme est de type SmartArt et faites un cast de la forme sélectionnée en SmartArt si c’est SmartArt.
- Sélectionnez le nœud de forme SmartArt à l’index 0.
- Maintenant, vérifiez si le nœud SmartArt sélectionné a plus de 2 nœuds enfants.
- Maintenant, supprimez le nœud à la Position 1 en utilisant la méthode RemoveNode.
- Enregistrez la Présentation.
// Charger la présentation souhaitée
Presentation pres = new Presentation("AddSmartArtNode.pptx");
try {
// Parcourir chaque forme à l'intérieur de 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)
{
// Faire un cast de la forme en SmartArt
SmartArt smart = (SmartArt) shape;
if (smart.getAllNodes().size() > 0)
{
// Accéder 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);
}
}
}
}
// Enregistrer la Présentation
pres.save("RemoveSmartArtNodeByPosition.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Définir la Position Personnalisée pour le Nœud Enfant dans SmartArt
Maintenant Aspose.Slides pour Java supporte la définition des propriétés X et Y de SmartArtShape. Le code snippet ci-dessous montre comment définir la position, la taille et la rotation personnalisées de SmartArtShape, veuillez également noter que l’ajout de nouveaux nœuds entraîne un recalcul des positions et des tailles de tous les nœuds. De plus, avec les paramètres de position personnalisés, l’utilisateur peut définir les nœuds selon ses besoins.
// 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éplacez la forme SmartArt à 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);
// Changez les largeurs de la forme SmartArt
node = smart.getAllNodes().get_Item(2);
shape = node.getShapes().get_Item(1);
shape.setWidth(shape.getWidth() + shape.getWidth() * 2);
// Changez la hauteur de la forme SmartArt
node = smart.getAllNodes().get_Item(3);
shape = node.getShapes().get_Item(1);
shape.setHeight(shape.getHeight() + shape.getHeight() * 2);
// Changez la rotation de la forme 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érifier le Nœud Assistant
Nous utiliserons la forme SmartArt source suivante pour notre enquête dans différentes sections de cet article.
Figure : Forme SmartArt source dans la diapositive |
Dans le code sample suivant, nous allons enquêter sur la manière d’identifier les Nœuds Assistant dans la collection de nœuds SmartArt et d’y apporter des modifications.
- Créer une instance de la classe Presentation et charger la présentation avec la forme SmartArt.
- Obtenez la référence de la deuxième diapositive en utilisant son index.
- Parcourir chaque forme à l’intérieur de la première diapositive.
- Vérifiez si la forme est de type SmartArt et faites un cast de la forme sélectionnée en SmartArt si c’est SmartArt.
- Parcourir tous les nœuds à l’intérieur de la forme SmartArt et vérifier s’ils sont des Nœuds Assistant.
- Changez le statut du nœud assistant en nœud normal.
- Enregistrez la Présentation.
// Créer une instance de présentation
Presentation pres = new Presentation("AddNodes.pptx");
try {
// Parcourir chaque forme à l'intérieur de 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)
{
// Faire un cast de la forme en SmartArt
ISmartArt smart = (SmartArt) shape;
// Parcourir 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éfinir le nœud assistant sur false et le rendre un nœud normal
node.isAssistant();
}
}
}
}
// Enregistrer la Présentation
pres.save("ChangeAssitantNode.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Figure : Nœuds Assistant Modifiés dans la forme SmartArt à l’intérieur de la diapositive |
Définir le Format de Remplissage du Nœud
Aspose.Slides pour 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 Java.
Veuillez suivre les étapes ci-dessous :
- Créer une instance de la classe Presentation.
- Obtenez la référence d’une diapositive en utilisant son index.
- Ajouter une forme SmartArt en définissant son LayoutType.
- Définir le Format de Remplissage pour les nœuds de forme SmartArt.
- É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 une forme SmartArt et des nœuds
ISmartArt chevron = slide.getShapes().addSmartArt(10, 10, 800, 60, SmartArtLayoutType.ClosedChevronProcess);
ISmartArtNode node = chevron.getAllNodes().addNode();
node.getTextFrame().setText("Du texte ici");
// 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 SmartArt
Les développeurs peuvent générer une miniature du Nœud enfant d’un SmartArt en suivant les étapes ci-dessous :
- Créer une instance de la classe Presentation.
- Ajouter SmartArt.
- Obtenez la référence d’un nœud en utilisant son index.
- Obtenez l’image de la miniature.
- Enregistrez l’image miniature dans le 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();
}