Kuinka tallentaa esitykset Python:ssa

Kuinka tallentaa esitykset Python:ssa

Aspose.Slides FOSS for Python saves presentations exclusively to .pptx formaattia käyttäen prs.save(path, SaveFormat.PPTX). Tämä opas kattaa oikean tallennusmallin, tallentamisen eri polkuun ja yleiset tallennukseen liittyvät virheet.

Vaiheittainen opas

Vaihe 1: Asenna paketti

pip install aspose-slides-foss

Vaihe 2: Avaa tai luo esitys

Käytä aina kontekstinhallintaa. Tallennuskutsu on suoritettava sisällä with lohko.

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)

Vaihe 3: Tallenna lohkon lopussa with Lohko

Aseta save() kutsu viimeisenä lauseena lohkon sisällä with lohko, kun kaikki muutokset on tehty.

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)

Vaihe 4: Tallenna eri polkuun

Anna eri tulostuspolku luodaksesi uusi tiedosto muuttamatta alkuperäistä:

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

Tiedosto template.pptx tiedostoa ei muuteta; customized.pptx luodaan (tai ylikirjoitetaan, jos se on jo olemassa).


Vaihe 5: Vahvista tulos

Kun with lohko päättyy, tiedosto on valmis ja suljettu. Tarkista, että se on olemassa:

import os
from pathlib import Path

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

Tuettu tallennusmuoto

FormaattiEnum-arvoTuettu
PPTX (Office Open XML)SaveFormat.PPTXKyllä
PDFN/AEi
HTMLN/AEi
SVGN/AEi
PNG / JPEGN/AEi
ODP (OpenDocument)N/AEi

Vain PPTX on tuettu. Muussa formaatissa tallentamisen yrittäminen aiheuttaa NotImplementedError tai ei‑tuetun formaatin virheen.


Yleisiä ongelmia ja korjauksia

PermissionError: [Errno 13] Permission denied

Tulostustiedosto on avoinna toisessa sovelluksessa (esim. PowerPoint on tiedoston auki). Sulje tiedosto muissa sovelluksissa ennen tallentamista.

Tiedosto on luotu, mutta se näyttää tyhjältä tai vioittuneelta

Varmista prs.save() kutsutaan sisällä with lohko, ei sen jälkeen. Kun with lohko päättyy, Presentation objekti vapautetaan ja myöhemmät kutsut epäonnistuvat hiljaisesti tai aiheuttavat virheen.

NotImplementedError tallennettaessa

Tämä tapahtuu, kun yritetään tallentaa muotoa muuta kuin PPTX, tai kun tallennuksen aikana käytetään tukematonta ominaisuutta (kuten kaavioita tai animaatioita).


Usein kysytyt kysymykset

Voinko tallentaa samaan tiedostoon, jonka avasin?

Kyllä. Tallentaminen samaan polkuun korvaa alkuperäisen tiedoston:

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

Voinko tallentaa tavupuskuriin tiedoston sijaan?

Kyllä. Anna io.BytesIO objekti suoraan prs.save() — se hyväksyy minkä tahansa BinaryIO kohde:

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

Säilyttääkö tallennus sisällön, jota en ole muokannut?

Kyllä. Alkuperäisen tiedoston tuntemattomat XML-osat säilytetään tarkalleen sellaisina kuin ne ovat. Kirjasto sarjoittaa vain ne osat asiakirjamallista, jotka se ymmärtää, ja läpäisee kaikki XML:t, joita se ei tunnista.


Katso myös

 Suomi