Hvordan lagre presentasjoner i Python

Hvordan lagre presentasjoner i Python

Aspose.Slides FOSS for Python saves presentations exclusively to .pptx format ved bruk av prs.save(path, SaveFormat.PPTX). Denne guiden dekker riktig lagringsmønster, lagring til en annen sti, og vanlige lagringsrelaterte feil.

Steg-for-steg guide

Steg 1: Installer pakken

pip install aspose-slides-foss

Steg 2: Åpne eller opprett en presentasjon

Alltid bruk kontekstbehandleren. Lagre‑kallet må skje innenfor with blokk.

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)

Trinn 3: Lagre på slutten av with Blokk

Plasser save() kall som den siste setningen inne i with blokk, etter at alle endringer er fullført.

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)

Steg 4: Lagre til en annen sti

Oppgi en annen utdata‑sti for å opprette en ny fil uten å endre originalen:

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

Filen template.pptx fil er ikke endret; customized.pptx opprettes (eller overskrives hvis den allerede finnes).


Steg 5: Verifiser resultatet

Etter with blokk avsluttes, er filen komplett og lukket. Sjekk at den finnes:

import os
from pathlib import Path

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

Støttet lagringsformat

FormatEnum-verdiStøttet
PPTX (Office Open XML)SaveFormat.PPTXJa
PDFN/ANei
HTMLN/ANei
SVGN/ANei
PNG / JPEGN/ANei
ODP (OpenDocument)N/ANei

Kun PPTX støttes. Forsøk på å lagre i et annet format vil utløse NotImplementedError eller en feil for et ikke‑støttet format.


Vanlige problemer og løsninger

PermissionError: [Errno 13] Permission denied

Utdatafilen er åpen i et annet program (f.eks. PowerPoint har filen åpen). Lukk filen i andre programmer før du lagrer.

Filen er opprettet, men ser tom eller korrupt ut

Sørg for prs.save() kalles inne i with blokken, ikke etter den. Etter at with blokken avsluttes, blir Presentation objektet frigjort, og påfølgende kall vil mislykkes stille eller utløse en feil.

NotImplementedError ved lagring

Dette oppstår når du prøver å lagre i et format annet enn PPTX, eller når du bruker en ikke‑støttet funksjon (som diagrammer eller animasjoner) under lagring.


Ofte stilte spørsmål

Kan jeg lagre til den samme filen jeg åpnet?

Ja. Lagring til samme sti overskriver den opprinnelige filen:

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

Kan jeg lagre til en byte‑buffer i stedet for en fil?

Ja. Send inn en io.BytesIO objekt direkte til prs.save() — den godtar enhver BinaryIO destinasjon:

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()

Bevarer lagring innholdet jeg ikke har endret?

Ja. Ukjente XML‑deler fra den opprinnelige filen beholdes ordrett. Biblioteket serialiserer kun de delene av dokumentmodellen det forstår, og sender gjennom all XML det ikke gjenkjenner.


Se også

 Norsk