Gérer les graphiques SmartArt dans les présentations avec Python

Vue d’ensemble

Aspose.Slides vous permet de créer et de gérer des graphiques SmartArt dans les présentations PowerPoint de façon programmatique. Cet article explique comment ajouter une forme SmartArt à une diapositive, accéder aux formes SmartArt existantes, rechercher un SmartArt selon un type de mise en page spécifique, et mettre à jour son apparence visuelle en modifiant le style SmartArt ou le style de couleur.

Les exemples montrent comment travailler avec les formes SmartArt via la collection de formes de la diapositive de présentation, vérifier si une forme est un SmartArt, puis modifier ou inspecter ses propriétés.

Créer une forme SmartArt

Aspose.Slides for Python via Java fournit une API pour créer des formes SmartArt. Pour créer une forme SmartArt dans une diapositive, suivez les étapes ci-dessous :

  1. Créez une instance de la classe Presentation.
  2. Récupérez une diapositive par son index.
  3. Ajoutez une forme SmartArt en spécifiant un SmartArtLayoutType.
  4. Enregistrez la présentation modifiée en fichier PPTX.
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, SmartArtLayoutType

presentation = Presentation()
try:
    # Obtenir la première diapositive.
    slide = presentation.getSlides().get_Item(0)

    # Ajouter une forme SmartArt.
    smart_art = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList)

    # Enregistrer la présentation.
    presentation.save("SimpleSmartArt.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()
SmartArt shape
Figure: forme SmartArt ajoutée à la diapositive

Accéder à une forme SmartArt sur une diapositive

L’exemple suivant accède aux formes SmartArt d’une diapositive de présentation. Il parcourt chaque forme de la diapositive et vérifie si la forme est une instance de SmartArt.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SmartArt

presentation = Presentation("AccessSmartArtShape.pptx")
try:
    # Parcourir chaque forme sur la première diapositive.
    for shape in presentation.getSlides().get_Item(0).getShapes():
        if isinstance(shape, SmartArt):
            smart_art = shape
            print("Shape Name: " + str(smart_art.getName()))
finally:
    presentation.dispose()

Accéder à une forme SmartArt avec un type de mise en page particulier

L’exemple suivant accède à une forme SmartArt avec un type de mise en page particulier, obtenu via SmartArt.getLayout.

  1. Créez une instance de la classe Presentation et chargez la présentation contenant une forme SmartArt.
  2. Récupérez la première diapositive par son index.
  3. Parcourez chaque forme de la première diapositive.
  4. Vérifiez si la forme est une instance de SmartArt.
  5. Vérifiez si la forme SmartArt possède le type de mise en page spécifié et effectuez l’opération requise.
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SmartArt, SmartArtLayoutType

presentation = Presentation("AccessSmartArtShape.pptx")
try:
    # Parcourir chaque forme sur la première diapositive.
    for shape in presentation.getSlides().get_Item(0).getShapes():
        if isinstance(shape, SmartArt):
            smart_art = shape

            # Vérifier la mise en page du SmartArt.
            if smart_art.getLayout() == SmartArtLayoutType.BasicBlockList:
                print("Perform the required operation here.")
finally:
    presentation.dispose()

Modifier le style d’une forme SmartArt

Cet exemple montre comment modifier le style rapide d’une forme SmartArt.

  1. Créez une instance de la classe Presentation et chargez la présentation contenant une forme SmartArt.
  2. Récupérez la première diapositive par son index.
  3. Parcourez chaque forme de la première diapositive.
  4. Vérifiez si la forme est une instance de SmartArt.
  5. Trouvez la forme SmartArt avec le style spécifié.
  6. Définissez le nouveau style pour la forme SmartArt.
  7. Enregistrez la présentation.
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, SmartArt, SmartArtQuickStyleType

presentation = Presentation("SimpleSmartArt.pptx")
try:
    slide = presentation.getSlides().get_Item(0)

    # Parcourir chaque forme sur la première diapositive.
    for shape in slide.getShapes():
        if isinstance(shape, SmartArt):
            smart_art = shape

            # Vérifier et changer le style du SmartArt.
            if smart_art.getQuickStyle() == SmartArtQuickStyleType.SimpleFill:
                smart_art.setQuickStyle(SmartArtQuickStyleType.Cartoon)

    presentation.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()
SmartArt shape
Figure: forme SmartArt avec style modifié

Modifier le style de couleur d’une forme SmartArt

Cet exemple accède à une forme SmartArt avec un style de couleur particulier et modifie ce style.

  1. Créez une instance de la classe Presentation et chargez la présentation contenant une forme SmartArt.
  2. Récupérez la première diapositive par son index.
  3. Parcourez chaque forme de la première diapositive.
  4. Vérifiez si la forme est une instance de SmartArt.
  5. Trouvez la forme SmartArt avec le style de couleur spécifié.
  6. Définissez le nouveau style de couleur pour la forme SmartArt.
  7. Enregistrez la présentation.
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, SmartArt, SmartArtColorType

presentation = Presentation("SimpleSmartArt.pptx")
try:
    slide = presentation.getSlides().get_Item(0)

    # Parcourir chaque forme sur la première diapositive.
    for shape in slide.getShapes():
        if isinstance(shape, SmartArt):
            smart_art = shape

            # Vérifier et changer le style du SmartArt.
            if smart_art.getColorStyle() == SmartArtColorType.ColoredFillAccent1:
                smart_art.setColorStyle(SmartArtColorType.ColorfulAccentColors)

    presentation.save("ChangeSmartArtColorStyle.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()
SmartArt shape
Figure: forme SmartArt avec style de couleur modifié

FAQ

Puis-je animer le SmartArt comme un objet unique ?
Oui. SmartArt est une forme, vous pouvez donc appliquer les animations standard via l’API d’animations (entrée, sortie, mise en valeur, trajectoires de mouvement) comme pour les autres formes.

Comment puis-je trouver un SmartArt spécifique sur une diapositive si je ne connais pas son ID interne ?
Définissez et utilisez le texte alternatif et recherchez la forme par cette valeur — c’est la méthode recommandée pour localiser la forme cible.

Puis-je grouper le SmartArt avec d’autres formes ?
Oui. Vous pouvez grouper le SmartArt avec d’autres formes (images, tableaux, etc.) puis manipuler le groupe.

Comment obtenir une image d’un SmartArt spécifique (par ex. pour un aperçu ou un rapport) ?
Exportez une vignette/image de la forme ; la bibliothèque peut rendre des formes individuelles vers des fichiers raster (PNG/JPG/TIFF).

L’apparence du SmartArt sera-t-elle préservée lors de la conversion de l’ensemble de la présentation en PDF ?
Oui. Le moteur de rendu vise une haute fidélité pour l'export PDF, avec une gamme d’options de qualité et de compatibilité.