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-foss2. 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āts | Enum Vērtība | Atbalstīts |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | Jā |
| N/A | Nē | |
| HTML | N/A | Nē |
| SVG | N/A | Nē |
| PNG / JPEG | N/A | Nē |
| ODP (OpenDocument) | N/A | Nē |
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 originalVai 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.