Kā saglabāt prezentācijas Python

Kā saglabāt prezentācijas Python

Aspose.Slides FOSS for Python saves presentations exclusively to .pptx formāts, izmantojot prs.save(path, SaveFormat.PPTX). Šis ceļvedis aptver pareizo saglabāšanas modeli, saglabāšanu citā ceļā un biežāk sastopamās ar saglabāšanu saistītās kļūdas.

Solī pa solim rokasgrāmata

1. solis: instalējiet pakotni

pip install aspose-slides-foss

2. solis: Atveriet vai izveidojiet prezentāciju

Vienmēr izmantojiet konteksta pārvaldnieku. Saglabāšanas izsaukums jāveic iekšpusē with bloka.

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)

3. solis: Saglabāt beigās with Bloks

Novietojiet save() izsaukumu kā pēdējo paziņojumu iekšpusē with bloka, pēc tam, kad visi labojumi ir pabeigti.

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)

4. solis: Saglabājiet citā ceļā

Norādiet citu izvades ceļu, lai izveidotu jaunu failu, nemainot oriģinālu:

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

Tas template.pptx fails nav modificēts; customized.pptx tiek izveidots (vai pārrakstīts, ja tas jau pastāv).


5. solis: Pārbaudiet rezultātu

Pēc with bloka izbeigšanās, fails ir pilnīgs un aizvērts. Pārbaudiet, vai tas pastāv:

import os
from pathlib import Path

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

Atbalstītais saglabāšanas formāts

FormātsEnum VērtībaAtbalstīts
PPTX (Office Open XML)SaveFormat.PPTX
PDFN/A
HTMLN/A
SVGN/A
PNG / JPEGN/A
ODP (OpenDocument)N/A

Tikai PPTX tiek atbalstīts. Mēģinājums saglabāt citā formātā izraisīs NotImplementedError vai neatbalstīta formāta kļūda.


Biežāk sastopamās problēmas un to risinājumi

PermissionError: [Errno 13] Permission denied

Izvades fails ir atvērts citā lietotnē (piemēram, PowerPoint ir atvēris šo failu). Aizveriet failu citās lietotnēs pirms saglabāšanas.

Fails ir izveidots, bet izskatās tukšs vai bojāts

Nodrošiniet prs.save() tiek izsaukts iekš with bloka, ne pēc tā. Pēc with bloka iziešanas, Presentation objekts tiek atbrīvots, un turpmākie izsaukumi neizdosies klusi vai izraisīs kļūdu.

NotImplementedError saglabājot

Tas notiek, mēģinot saglabāt citā formātā, kas nav PPTX, vai izmantojot neatbalstītu funkciju (piemēram, diagrammas vai animācijas) saglabāšanas laikā.


Biežāk uzdotie jautājumi

Vai varu saglabāt tajā pašā failā, ko atvēru?

Jā. Saglabājot tajā pašā ceļā, tiek pārrakstīts sākotnējais fails:

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

Vai varu saglabāt baitu buferī, nevis failā?

Jā. Pārsūtiet io.BytesIO objektu tieši uz prs.save() — tas pieņem jebkuru BinaryIO galamērķis:

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

Vai saglabāšana saglabā saturu, ko neesmu modificējis?

Jā. Nezināmās XML daļas no sākotnējā faila tiek saglabātas precīzi kā ir. Bibliotēka serializē tikai tās dokumenta modeļa daļas, kuras saprot, un caurļauj jebkuru XML, ko neatpazīst.


Skatīt arī

 Latviešu