Travailler avec des formes dans PowerPoint en Python

Différents types de diagrammes sont utilisés dans les présentations PowerPoint pour rendre le contenu plus élaboré. Ces diagrammes sont composés de différentes formes telles que des ellipses, des lignes, des rectangles et des connecteurs. Dans cet article, vous apprendrez à ajouter, cloner et supprimer des formes dans des diapositives PowerPoint par programmation en Python.

Bibliothèque Python pour travailler avec des formes PowerPoint

Aspose.Slides for Python via .NET est conçu pour créer et manipuler des présentations PowerPoint à partir des applications Python. Nous utiliserons cette bibliothèque pour travailler avec des formes dans des diapositives PowerPoint. Vous pouvez l’installer à partir de PyPI à l’aide de la commande pip suivante.

> pip install aspose.slides

Types de formes dans PowerPoint

Vous pouvez créer une variété de formes dans les présentations PowerPoint en utilisant Aspose.Slides for Python. Les formes les plus couramment utilisées incluent :

Ajouter une forme aux diapositives PowerPoint en Python

Pour ajouter n’importe quelle forme, y compris ellipse, ligne, rectangle, la méthode addautoshape (ShapeType, Single, Single, Single, Single) est utilisée à laquelle vous pouvez transmettre le type de la forme et d’autres paramètres nécessaires. L’énumération ShapeType est utilisée pour spécifier le type de la forme. Voici les étapes pour ajouter une forme à une diapositive PowerPoint en Python.

  1. Créez une présentation ou chargez-en une existante à l’aide de la classe Presentation.
  2. Obtenez la référence de la diapositive souhaitée à partir de la collection Presentation.slides.
  3. Ajoutez une ellipse (ou toute autre forme) à l’aide de la méthode addautoshape(ShapeType, Single, Single, Single, Single).
  4. Enregistrez la présentation à l’aide de la méthode Presentation.save(String, SaveFormat).

L’exemple de code suivant montre comment ajouter une forme à une diapositive PowerPoint en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create a new presentation
with slides.Presentation() as pres:
    # Get the first slide
    sld = pres.slides[0]

    # Add auto shape of ellipse type
    shp = sld.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 50, 150, 150, 50)

    # Apply some formatting to ellipse shape
    shp.fill_format.fill_type = slides.FillType.SOLID
    shp.fill_format.solid_fill_color.color = drawing.Color.pink

    # Apply some formatting to the line of Ellipse
    shp.line_format.fill_format.fill_type = slides.FillType.SOLID
    shp.line_format.fill_format.solid_fill_color.color = drawing.Color.purple
    shp.line_format.width = 5

    # Save the PPTX file to disk
    pres.save("add-ellipse.pptx", slides.export.SaveFormat.PPTX)

Voici l’ellipse que nous avons ajoutée à l’aide de l’exemple de code ci-dessus.

Ajouter une forme à PowerPoint PPT en Python

Connecter des formes PowerPoint avec un connecteur en Python

Dans les diagrammes, différentes formes sont reliées les unes aux autres à l’aide d’une ligne appelée connecteur. Un connecteur peut être une ligne droite ou courbe. Voyons comment ajouter un connecteur entre deux formes PowerPoint en Python.

  1. Commencez par créer une instance de la classe Presentation pour créer ou charger une présentation.
  2. Ensuite, obtenez la référence d’une diapositive à l’aide de la collection Presentation.slides.
  3. Ajoutez deux formes comme vous l’avez ajouté dans la section précédente et obtenez leurs références.
  4. Créez un connecteur à l’aide de la méthode addconnector(ShapeType, Single, Single, Single, Single).
  5. Joignez les formes à l’aide des propriétés Connector.startshapeconnectedto et Connector.endshapeconnectedto.
  6. Appelez la méthode Connector.reroute() pour créer le chemin de connexion automatique le plus court.
  7. Enfin, enregistrez la présentation à l’aide de la méthode Presentation.save(string, SaveFormat).

L’exemple de code suivant montre comment connecter des formes dans une diapositive PowerPoint en Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation
with slides.Presentation() as presentation:
    # Access shapes collection for selected slide
    shapes = presentation.slides[0].shapes

    # Add ellipse
    ellipse = shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 0, 100, 100, 100)

    # Add auto shape rectangle
    rectangle = shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 300, 100, 100)

    # Add connector to connect shapes
    connector = shapes.add_connector(slides.ShapeType.BENT_CONNECTOR2, 0, 0, 10, 10)

    # Join shapes using connector
    connector.start_shape_connected_to = ellipse
    connector.end_shape_connected_to = rectangle

    # Call reroute to set the automatic shortest path between shapes
    connector.reroute()

    # Save presenation
    presentation.save("add-connector.pptx", slides.export.SaveFormat.PPTX)

Voici la capture d’écran de la présentation après avoir connecté des formes avec un connecteur.

Connecter des formes PowerPoint avec un connecteur en Python

Cloner des formes PowerPoint en Python

Parfois, vous choisissez de cloner des formes au lieu d’en créer une nouvelle. Pour y parvenir, Aspose.Slides prend en charge le clonage de forme. Voici les étapes pour cloner une forme dans PowerPoint à l’aide de Python.

  1. Tout d’abord, utilisez la classe Presentation pour charger le fichier de présentation.
  2. Obtenir la référence d’une diapositive de la collection Presentation.slides.
  3. Accédez aux formes de diapositives source et de destination à partir de la collection ISlide.shapes.
  4. Clonez les formes de la collection de formes de diapositive source vers la diapositive de destination à l’aide de la méthode addclone().
  5. Enfin, enregistrez le fichier de présentation mis à jour.

L’exemple de code suivant montre comment cloner des formes dans des diapositives PowerPoint en Python.

import aspose.slides as slides

# Load presentation
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Access shapes of the source slide
    sourceShapes = presentation.slides[0].shapes

    # Add a new blank slide
    blankLayout = presentation.masters[0].layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
    destSlide = presentation.slides.add_empty_slide(blankLayout)

    # Access shapes of destination slide
    destShapes = destSlide.shapes

    # Clone shapes
    destShapes.add_clone(sourceShapes[0], 50, 150 + sourceShapes[0].height)
    destShapes.add_clone(sourceShapes[0])                 
    destShapes.insert_clone(0, sourceShapes[0], 50, 150)

    # Save file
    presentation.save("clone-shapes.pptx", slides.export.SaveFormat.PPTX)

Supprimer les formes des diapositives PowerPoint en Python

Vous pouvez également supprimer des formes des présentations PowerPoint en suivant les étapes ci-dessous.

  1. Créez une instance de la classe Presentation pour charger le fichier PPT/PPTX.
  2. Accédez à la diapositive souhaitée à partir de la collection Presentation.slides.
  3. Filtrez la forme souhaitée avec un texte spécifique à l’aide de la propriété IShape.alternativetext.
  4. Supprimez la forme à l’aide de la méthode ISlide.shapes.remove(IShape).
  5. Enfin, enregistrez le fichier de présentation mis à jour.

L’exemple de code suivant montre comment supprimer des formes d’une diapositive PowerPoint en Python.

# Load presentation
with slides.Presentation("add-ellipse.pptx") as presentation:
    # Get the first slide
    sld = presentation.slides[0]

    alttext = "User Defined"

    # Loop through shapes
    for i in range(len(sld.shapes)):
        # Find shape by alternative text
        ashp = sld.shapes[0]
        if ashp.alternative_text == alttext:
            sld.shapes.remove(ashp)

    # Save file
    presentation.save("remove-shapes.pptx", slides.export.SaveFormat.PPTX)

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour utiliser Aspose.Slides for Python sans limitation d’évaluation.

Conclusion

MS PowerPoint prend en charge une gamme de formes pour créer différents types de diagrammes tels que des organigrammes. Dans cet article, nous avons expliqué comment créer des formes PowerPoint telles que des ellipses, des rectangles et les connecter à l’aide de connecteurs en Python. De plus, vous avez appris à cloner et à supprimer par programme des formes dans des diapositives PowerPoint. Vous pouvez en savoir plus sur Aspose.Slides for Python en utilisant la documentation. N’hésitez pas non plus à nous faire part de vos questions via notre forum.

Voir également