Base de connaissances

Python PPTX | Comment manipuler une présentation PowerPoint

Si vous souhaitez savoir comment créer, lire, personnaliser, combiner, cloner ou convertir des présentations PowerPoint et OpenOffice avec Python, sans avoir besoin d’un autre logiciel externe, nous avons la solution.

Aspose.Slides for Python via .NET est une bibliothèque de classes pour manipuler des présentations, offrant de nombreuses fonctionnalités clés telles que la création de présentations à partir de zéro, la conversion de présentations, la gestion du texte, des formes, des tableaux, des animations, l’aperçu des diapositives, l’exportation des diapositives vers PDF, TIFF, XPS, HTML, etc., ainsi que bien d’autres. Aspose.Slides for Python via .NET propose des démos et des exemples fonctionnels pour vous aider à mieux comprendre notre API.

Notre API propose les fonctionnalités suivantes :

  • Création ou clonage de diapositives à partir de modèles
  • Travail avec les tableaux PowerPoint
  • Suppression ou ajout de protection sur les formes
  • Ajout de graphiques MS Excel en tant qu’OleObjects
  • Génération de présentations à partir d’une base de données
  • Protection des présentations
  • Création et modification de graphiques
  • Exportation des présentations vers PDF, XPS, HTML, JPEG, PNG, SVG, et bien plus encore

Formats de fichiers pris en charge :

Aspose.Slides for Python via .NET peut à la fois charger et enregistrer les formats suivants : PPT, POT, PPS, PPTX, POTX, PPSX, PPTM, PPSM, POTM, ODP, OTP, et enregistrer dans les formats suivants : TIFF, EMF, PDF, XPS, JPEG, PNG, GIFF, BMP, SVG, SWF, HTML, XAML.

Ci‑dessous, nous vous montrons comment créer, ouvrir, fusionner et enregistrer une présentation, avec des exemples de code.

Python PPTX | Comment manipuler une présentation PowerPoint

Comment créer une présentation PowerPoint (PPTX) avec Python

Pour ajouter une nouvelle ligne dans une diapositive à l’aide d’Aspose.Slides for Python via .NET, suivez ces étapes :

  1. Créez une instance de la classe Presentation
  2. Obtenez une référence à la diapositive en utilisant son indice
  3. À l’aide de la méthode add_auto_shape exposée par l’objet shapes, ajoutez une AutoShape de type LINE
  4. Enregistrez la présentation au format PPTX

En suivant ces étapes, nous avons ajouté une ligne à la première diapositive de la présentation :

import aspose.slides as slides  

# Instancie un objet Presentation qui représente un fichier de présentation
with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    slide.shapes.add_auto_shape(slides.ShapeType.LINE, 50, 150, 300, 0)
    presentation.save("NewPresentation_out.pptx", slides.export.SaveFormat.PPTX)

Comment ouvrir une présentation avec Python

Avec Aspose.Slides for Python via .NET, les développeurs peuvent accéder à des présentations PowerPoint existantes ou les modifier.

Notre API fournit une classe Presentation pour ouvrir une présentation existante, et nous pouvons utiliser l’un des constructeurs appropriés de la classe Presentation afin de créer son objet à partir d’une présentation PowerPoint existante. Dans l’exemple ci‑dessous, nous montrons comment ouvrir une présentation. Nous transmettons le nom du fichier de présentation au constructeur de la classe Presentation, puis nous affichons le nombre total de diapositives à l’écran.

import aspose.slides as slides

# Ouverture du fichier de présentation en passant le chemin du fichier au constructeur de la classe Presentation
with slides.Presentation("pres.pptx") as pres:
    # Affichage du nombre total de diapositives présentes dans la présentation
    print(pres.slides.length)

Et si vous avez des présentations très volumineuses (par exemple une taille de 3 Go), vous pouvez les ouvrir avec le code d’exemple ci‑dessous :

import aspose.slides as slides
import os

loadOptions = slides.LoadOptions()
loadOptions.blob_management_options = slides.BlobManagementOptions()
loadOptions.blob_management_options.presentation_locking_behavior = slides.PresentationLockingBehavior.KEEP_LOCKED

with slides.Presentation("pres.pptx", loadOptions) as pres:
    # la présentation massive est chargée et prête à l’emploi, mais la consommation mémoire reste faible.

    # effectuez les modifications souhaitées.
    pres.slides[0].name = "Very large presentation"

    # la présentation sera enregistrée dans un autre fichier, la consommation mémoire reste faible pendant l’enregistrement.
    pres.save("veryLargePresentation-copy.pptx", slides.export.SaveFormat.PPTX)

    # impossible de faire cela ! Une exception d’E/S sera levée, car le fichier est verrouillé tant que l’objet pres n’est pas libéré
    os.remove("pres.pptx")

# il est maintenant possible de le supprimer, le fichier source n’est plus verrouillé par l’objet pres
os.remove("pres.pptx")

Si vous créez une présentation contenant de gros objets (images très volumineuses, vidéo, audio, etc.), utilisez la facilité Blob pour réduire la consommation de mémoire.

Comment fusionner des présentations PowerPoint avec Python

Aspose.Slides for Python via .NET vous permet de fusionner des présentations de différentes manières. Vous pouvez fusionner des présentations PowerPoint avec leurs formes, leur mise en forme, leurs textes, leurs styles, leurs commentaires, etc., sans perte de qualité ni de données. Avec notre API, vous pouvez fusionner des présentations entières, des diapositives spécifiques, et des présentations dans un même format (PPTX → PPTX, PPT → PPT, etc.) ou dans des formats différents (PPTX → PPT, PPTX → ODP, etc.).

Pour fusionner des présentations, vous pouvez utiliser les méthodes add_clone (de l’interface ISlideCollection ). L’objet Presentation possède une collection de diapositives, et vous pouvez appeler la méthode add_clone depuis la présentation sélectionnée ; les diapositives seront alors fusionnées dans cette présentation.

Fusionner une présentation

En utilisant la méthode AddClone (ISlide) , vous pouvez combiner des diapositives sans craindre que leur apparence ou leurs styles ne soient perdus (paramètres par défaut).
Dans le code ci‑dessous, vous voyez comment fusionner des présentations :

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide)
        pres1.save("combined.pptx", slides.export.SaveFormat.PPTX)

Fusionner la présentation et modifier le style des diapositives
Si vous souhaitez changer le style des diapositives dans la présentation de sortie lors de la fusion, la méthode add_clone (ISlide, IMasterSlide, Boolean) le permet.

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide, pres1.masters[0], allow_clone_missing_layout = True)
        pres1.save("combined_with_master.pptx", slides.export.SaveFormat.PPTX)

Fusionner des diapositives spécifiques
En utilisant le code ci‑dessous, vous pouvez sélectionner et combiner des diapositives spécifiques provenant de différentes présentations, pour obtenir une présentation unique en sortie :

import aspose.slides as slides

with slides.Presentation("pres.pptx") as pres1:
    with slides.Presentation("Presentation1.pptx") as pres2:
        for slide in pres2.slides:
            pres1.slides.add_clone(slide, pres1.layout_slides[0])
        pres1.save("combined_with_layout.pptx", slides.export.SaveFormat.PPTX)

Pour découvrir d’autres méthodes de fusion de présentations, consultez la section Fusion de présentation de la documentation.

Comment enregistrer des présentations PowerPoint avec Python

Avec Aspose.Slides for Python via .NET, vous pouvez enregistrer une présentation sous forme de fichier ou de flux. Vous trouverez ci‑dessous un exemple de code pour les deux méthodes.

Enregistrement de la présentation en tant que fichiers

Vous pouvez enregistrer une présentation en appelant la méthode Save de la classe Presentation .

import aspose.slides as slides

# Instancie un objet Presentation qui représente un fichier PPT
with slides.Presentation() as presentation:
    
    #...effectuez vos traitements ici...

    # Enregistrez votre présentation dans un fichier
    presentation.save("Saved_out.pptx", slides.export.SaveFormat.PPTX)

Enregistrement de la présentation vers des flux

Une façon d’enregistrer des présentations consiste à les sauvegarder dans un flux. Il suffit de transmettre un flux de sortie à la méthode Save de la classe Presentation . Dans le code ci‑dessus, nous créons un nouveau fichier Presentation, ajoutons du texte à une forme, puis enregistrons la présentation dans le flux.

import aspose.slides as slides

# Instancie un objet Presentation qui représente un fichier PPT
with slides.Presentation() as presentation:
    
    shape = presentation.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 200, 200, 200)

    # Enregistrez votre présentation dans un flux
    with open("Save_As_Stream_out.pptx", "bw") as stream:
        presentation.save(stream, slides.export.SaveFormat.PPTX)

Dans notre documentation, vous pouvez découvrir comment enregistrer des présentations avec un type de vue prédéfini , enregistrer des présentations au format Strict Open XML Spreadsheet , ou enregistrer les mises à jour de progression en pourcentage .

Aspose.Slides for Python via .NET est compatible avec Python 3.5, 3.6, 3.7, 3.8, 3.9, et si vous écrivez du code Python sous Linux, vous pouvez consulter les exigences supplémentaires pour Linux .

Consulting payant

Si vous avez besoin d’aide pour votre projet, nous avons des experts qui travailleront avec vous, concevront une solution et implémenteront notre API selon vos besoins. Nous faisons le travail difficile afin que vous puissiez vous concentrer sur votre activité.