Jak načíst prezentace v Pythonu
Aspose.Slides FOSS for Python vám umožní otevřít libovolný soubor .pptx, prozkoumat jeho obsah a buď jej uložit zpět do PPTX, nebo z něj extrahovat data. Tento průvodce pokrývá otevření souboru, iteraci snímků, čtení textu tvaru a zpětné uložení.
Průvodce krok za krokem
Krok 1: Nainstalujte balíček
pip install aspose-slides-fossKrok 2: Otevřít existující prezentaci
Předávejte cestu k souboru do slides.Presentation(). Použijte správce kontextu k zajištění úklidu.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation("input.pptx") as prs:
print(f"Slide count: {len(prs.slides)}")
prs.save("output.pptx", SaveFormat.PPTX)Neznámé části XML ve zdrojovém souboru jsou zachovány doslovně: knihovna nikdy neodstraňuje obsah, který ještě nerozumí.
Krok 3: Prohlédněte snímky
Iterujte přes všechny snímky a vypište jejich index:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for i, slide in enumerate(prs.slides):
shape_count = len(slide.shapes)
print(f"Slide {i}: {shape_count} shapes")Krok 4: Načíst text tvaru
Iterujte přes tvary a načtěte text z tvarů, které mají TextFrame:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
for slide in prs.slides:
for shape in slide.shapes:
if hasattr(shape, "text_frame") and shape.text_frame is not None:
text = shape.text_frame.text
if text.strip():
print(f" Shape text: {text!r}")Krok 5: Načíst vlastnosti dokumentu
Přístup k základním vlastnostem dokumentu z prs.document_properties:
import aspose.slides_foss as slides
with slides.Presentation("deck.pptx") as prs:
props = prs.document_properties
print(f"Title: {props.title}")
print(f"Author: {props.author}")
print(f"Subject: {props.subject}")Krok 6: Uložení round‑trip
Po prohlédnutí nebo úpravě prezentace ji uložte zpět do PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Uložení na jinou cestu vytvoří nový soubor. Uložení na stejnou cestu přepíše původní.
Běžné problémy a opravy
FileNotFoundError
Zkontrolujte, že cesta k souboru .pptx je správná vzhledem k pracovnímu adresáři. Použijte pathlib.Path pro robustní konstrukci cesty:
from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
...Exception: File format is not supported
Knihovna podporuje pouze .pptx (Office Open XML). Zastaralé soubory .ppt (binární PowerPoint 97–2003) nejsou podporovány.
Tvary nemají atribut text_frame
Některé tvary (Connectors, PictureFrames, GroupShapes) nemají text_frame. Chraňte pomocí hasattr(shape, "text_frame") and shape.text_frame is not None před přístupem k textu.
Často kladené otázky
Zachovává načítání veškerý původní obsah?
Ano. Neznámé části XML jsou při round‑trip uložení zachovány doslovně. Knihovna neodstraní žádný XML obsah, který zatím nerozumí.
Mohu načíst PPTX chráněný heslem?
Prezentace chráněné heslem (šifrované) nejsou v této edici podporovány.
Mohu extrahovat vložené obrázky?
Přístup ke kolekci obrázků: prs.images vrací ImageCollection. Každý obrázek má vlastnost content_type a bytes pro čtení surových dat obrázku.
Je načítání z proudu v paměti podporováno?
Načítání přímo z io.BytesIO není v aktuálním API k dispozici. Nejprve zapište bajty do dočasného souboru:
import tempfile, os
import aspose.slides_foss as slides
with tempfile.NamedTemporaryFile(suffix=".pptx", delete=False) as tmp:
tmp.write(pptx_bytes)
tmp_path = tmp.name
try:
with slides.Presentation(tmp_path) as prs:
print(f"Slides: {len(prs.slides)}")
finally:
os.unlink(tmp_path)