Jak uložit prezentaci v Pythonu
Aspose.Slides FOSS pro Python ukládá prezentace výhradně do formátu .pptx pomocí ⌒prs.save(path, SaveFormat.PPTX)` . Tato příručka pokrývá správný vzor ukladaní, ukládaní na jinou cestu a běžné chyby související s uklazením.
Krok za krokem
Vypadá to jako…
Krok 1: Nainstalujte balíček
pip install aspose-slides-fossKrok 2: Otevřít nebo vytvořit prezentaci
Vždy použijte kontextový manažer. Zachování volání musí probíhat uvnitř bloku with .
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)Krok 3: Uložení na konci bloku with
Po dokončení všech úprav umístěte do bloku with jako poslední výkaz volání ̋save()∂.
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)Krok 4: Uložit jinou cestu
Pro vytvoření nového souboru bez úpravy originálu přejděte jinou výstupní cestu:
with slides.Presentation("template.pptx") as prs:
# modify ...
prs.save("customized.pptx", SaveFormat.PPTX)Soubor template.pptx není upraven; je vytvořen (nebo přepsán, pokud již existuje).
Krok 5: Ověřte výsledek
Po ukončení bloků s with je soubor kompletní a uzavřen. Zkontrolujte, zda existuje:
import os
from pathlib import Path
output = Path("output.pptx")
print(f"Saved: {output.exists()}, size: {output.stat().st_size} bytes")Podporovaný formát uložení
| Format | Enum Value | Supported |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | Yes |
| N/A | No | |
| HTML | N/A | No |
| SVG | N/A | No |
| PNG / JPEG | N/A | No |
| ODP (OpenDocument) | N/A | No |
Podporuje se pouze PPTX. Pokoušení uložit v jakémkoli jiném formátu vyvolá chybu NotImplementedError nebo chybějící podobu.
Obvyklé problémy a řešení
`PovoleníHmotnost: [Výhoda 13] Povolení zamítnuto
Výstupní soubor je otevřen v jiné aplikaci (např. PowerPoint má soubory otevřené). Před uložením uzavřete souboru v jiných aplikacích.
Soubor byl vytvořen, ale je prázdný nebo poškozený .
Zabezpečení, že `prs.save (() ̋ je volán uvnitř bloku ∂with∂ a ne po něm. Po ukončení bloku s∂ with∂ se objekt Presentation∂ odstraní a následné hovory budou mlčky selhat nebo vyvolat chybu.
NotImplementedError při ukládání
To se děje při pokusu o ukládání jiného formátu než PPTX nebo při používání nepodporované funkce (např. grafy nebo animace) během ukázky.
Časté otázky
Můžu si uložit ten samý soubor, co jsem otevřel?
Uložení stejné cesty přepíše originální soubor:
with slides.Presentation("deck.pptx") as prs:
# modify ...
prs.save("deck.pptx", SaveFormat.PPTX) # overwrites originalMůžu uložit do bufera na bajty místo souboru?
Ano. Přeneste objekt `io.BytesIO přímo na ̋prs.save (): přijímá jakýkoli cíl binárního typu:
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()Zachovává uložení obsah, který jsem nezměnil?
Ano. Neznámé části XML z originálního souboru jsou doslova uchovávány. Knihovna sériově sestavuje pouze ty části dokumentu, které chápe a prochází všemi částmi XML, která nepozná.
Viz také:
- Jak vytvořit prezentaci v Pythonu
- Jak načítat prezentace v Pythonu
- Přehled funkcí
- Odkaz na API