Jak načíst prezentace v Python
Aspose.Slides FOSS for Python lets you open any .pptx soubor, prohlédněte jeho obsah a buď jej uložte zpět do PPTX, nebo z něj extrahujte data. Tento průvodce popisuje otevření souboru, iteraci snímků, čtení textu tvarů 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é XML části ve zdrojovém souboru jsou zachovány doslovně: knihovna nikdy neodstraňuje obsah, který ještě nezná.
Krok 3: Prozkoumat snímky
Procházejte 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: Číst text tvaru
Iterujte přes tvary a č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: Číst vlastnosti dokumentu
Přistupujte 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: Zpětné uložení (round‑trip)
Po prozkoumání 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 originál.
Časté problémy a opravy
FileNotFoundError
Zkontrolujte, že cesta k .pptx souboru 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 .pptx (Office Open XML) pouze. Starší .ppt (binární PowerPoint 97–2003) soubory nejsou podporovány.
Tvary nemají atribut text_frame
Některé tvary (Connectors, PictureFrames, GroupShapes) nemají text_frame. Ochrana 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 uložení s round‑tripem zachovány beze změny. Knihovna neodstraní žádný XML obsah, který zatím nezná.
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řistupujte ke kolekci obrázků: prs.images vrací the ImageCollection. Každý obrázek má content_type a bytes vlastnost pro čtení surových dat obrázku.
Je načítání z paměťového proudu podporováno?
Načítání přímo z io.BytesIO není v současném API zpřístupněno. 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)