Kaip išsaugoti pristatymus Python

Kaip išsaugoti pristatymus Python

Aspose.Slides FOSS for Python saves presentations exclusively to .pptx formatas naudojant prs.save(path, SaveFormat.PPTX). Ši vadovas apima teisingą išsaugojimo šabloną, išsaugojimą į kitą kelią ir dažnas su išsaugojimu susijusias klaidas.

Žingsnis po žingsnio vadovas

Žingsnis 1: Įdiekite paketą

pip install aspose-slides-foss

Žingsnis 2: Atidaryti arba sukurti pristatymą

Visada naudokite kontekstų valdyklę. Išsaugojimo kvietimas turi įvykti viduje with bloko.

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)

Žingsnis 3: Išsaugoti pabaigoje with blokas

Įdėkite save() kvietimą kaip paskutinę komandą viduje with bloko, po to kai visi pakeitimai baigti.

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)

Žingsnis 4: Išsaugoti į kitą kelią

Pateikite kitą išvesties kelią, kad sukurtumėte naują failą nekeičiant originalo:

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

Šis template.pptx failas nėra modifikuotas; customized.pptx yra sukurtas (arba perrašytas, jei jau egzistuoja).


Žingsnis 5: Patikrinkite išvestį

Po with bloko išeina, failas yra baigtas ir uždarytas. Patikrinkite, ar jis egzistuoja:

import os
from pathlib import Path

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

Palaikomas išsaugojimo formatas

FormatasEnum reikšmėPalaikoma
PPTX (Office Open XML)SaveFormat.PPTXTaip
PDFN/ANe
HTMLN/ANe
SVGN/ANe
PNG / JPEGN/ANe
ODP (OpenDocument)N/ANe

Palaikomas tik PPTX. Bandoma išsaugoti bet kuriuo kitu formatu sukels NotImplementedError arba nepalaikomo formato klaidą.


Dažnos problemos ir sprendimai

PermissionError: [Errno 13] Permission denied

Išvesties failas atvertas kitoje programoje (pvz., PowerPoint turi atvertą failą). Prieš išsaugojant uždarykite failą kitose programose.

Failas sukurtas, bet atrodo tuščias arba sugadintas

Užtikrinkite prs.save() kviečiamas viduje with bloko, ne po jo. Po with bloko išeina, Presentation objektas yra išlaisvinamas ir vėlesni kvietimai nesėkmingai nepastebimai arba sukels klaidą.

NotImplementedError išsaugant

Tai įvyksta, kai bandoma išsaugoti kitokiu formatu nei PPTX arba kai išsaugojimo metu naudojama nepalaikoma funkcija (pvz., diagramos arba animacijos).


Dažnai užduodami klausimai

Ar galiu išsaugoti į tą patį failą, kurį atidariau?

Taip. Išsaugojimas į tą patį kelią perrašo originalų failą:

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

Ar galiu išsaugoti į baitų buferį, o ne į failą?

Taip. Perduokite io.BytesIO objektą tiesiogiai į prs.save() — jis priima bet kokį BinaryIO vietą:

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

Ar išsaugojimas išsaugo turinį, kurio nekeitiau?

Taip. Nežinomos XML dalys iš originalaus failo išsaugomos nepakitusiomis. Biblioteka serializuoja tik tas dokumento modelio dalis, kurias supranta, o visas nepažįstamas XML dalis perduoda nepakitusiomis.


Žr. taip pat

 Lietuvių