Comment enregistrer des présentations dans Python

Comment enregistrer des présentations dans Python

Aspose.Slides FOSS for Python saves presentations exclusively to .pptx format en utilisant prs.save(path, SaveFormat.PPTX). Ce guide couvre le modèle d’enregistrement correct, l’enregistrement vers un chemin différent, et les erreurs courantes liées à l’enregistrement.

Guide étape par étape

Étape 1 : Installer le package

pip install aspose-slides-foss

Étape 2 : Ouvrir ou créer une présentation

Utilisez toujours le gestionnaire de contexte. L’appel d’enregistrement doit se produire à l’intérieur du with bloc.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

# Create new
with slides.Presentation() as prs:
    prs.save("new.pptx", SaveFormat.PPTX)

# Open existing
with slides.Presentation("input.pptx") as prs:
    prs.save("output.pptx", SaveFormat.PPTX)

Étape 3 : Enregistrez à la fin du with Bloc

Placez le save() appel en tant que dernière instruction à l’intérieur du with bloc, après que toutes les modifications soient terminées.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 100)
    shape.add_text_frame("Hello, World!")
    prs.save("output.pptx", SaveFormat.PPTX)

Étape 4 : Enregistrer vers un chemin différent

Fournissez un chemin de sortie différent pour créer un nouveau fichier sans modifier l’original :

with slides.Presentation("template.pptx") as prs:
    # modify ...
    prs.save("customized.pptx", SaveFormat.PPTX)

Le template.pptx fichier n’est pas modifié ; customized.pptx est créé (ou écrasé s’il existe déjà).


Étape 5 : Vérifier la sortie

Après le with le bloc se termine, le fichier est complet et fermé. Vérifiez qu’il existe :

import os
from pathlib import Path

output = Path("output.pptx")
print(f"Saved: {output.exists()}, size: {output.stat().st_size} bytes")

Format d’enregistrement pris en charge

FormatValeur d’énumérationPris en charge
PPTX (Office Open XML)SaveFormat.PPTXOui
PDFN/ANon
HTMLN/ANon
SVGN/ANon
PNG / JPEGN/ANon
ODP (OpenDocument)N/ANon

Seul le PPTX est pris en charge. Tenter d’enregistrer dans tout autre format générera NotImplementedError ou une erreur de format non pris en charge.


Problèmes courants et solutions

PermissionError: [Errno 13] Permission denied

Le fichier de sortie est ouvert dans une autre application (par ex., PowerPoint a le fichier ouvert). Fermez le fichier dans les autres applications avant d’enregistrer.

Le fichier est créé mais apparaît vide ou corrompu

Assurez‑vous prs.save() est appelé à l’intérieur du with bloc, pas après. Après le with bloc se termine, le Presentation objet est libéré et les appels ultérieurs échoueront silencieusement ou déclencheront une erreur.

NotImplementedError lors de l’enregistrement

Cela se produit lorsqu’on tente d’enregistrer dans un format autre que PPTX, ou lorsqu’on utilise une fonctionnalité non prise en charge (comme des graphiques ou des animations) lors de l’enregistrement.


Foire aux questions

Puis‑je enregistrer dans le même fichier que celui que j’ai ouvert ?

Oui. Enregistrer sur le même chemin écrase le fichier original :

with slides.Presentation("deck.pptx") as prs:
    # modify ...
    prs.save("deck.pptx", SaveFormat.PPTX)  # overwrites original

Puis‑je enregistrer dans un tampon d’octets au lieu d’un fichier ?

Oui. Passez un io.BytesIO objet directement à prs.save() — il accepte n’importe quel BinaryIO destination :

import io
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

buf = io.BytesIO()
with slides.Presentation() as prs:
    # ... modify presentation ...
    prs.save(buf, SaveFormat.PPTX)

pptx_bytes = buf.getvalue()

L’enregistrement préserve‑t‑il le contenu que je n’ai pas modifié ?

Oui. Les parties XML inconnues du fichier original sont conservées mot pour mot. La bibliothèque ne sérialise que les parties du modèle de document qu’elle comprend, et transmet telles quelles les XML qu’elle ne reconnaît pas.


Voir aussi

 Français