Ako načítať prezentácie v Python
Aspose.Slides FOSS for Python lets you open any .pptx súbor, skontrolujte jeho obsah a buď ho uložte späť do PPTX, alebo z neho extrahujte dáta. Tento návod pokrýva otvorenie súboru, prechádzanie snímok, čítanie textu tvarov a spätné ukladanie.
Postupný návod
Krok 1: Nainštalujte balík
pip install aspose-slides-fossKrok 2: Otvoriť existujúcu prezentáciu
Predajte cestu k súboru do slides.Presentation(). Použite správcu kontextu na zabezpečenie čistenia.
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áme XML časti v zdrojovom súbore sú zachované doslovne: knižnica nikdy neodstraňuje obsah, ktorý ešte nerozoznáva.
Krok 3: Prezrieť snímky
Prejdite všetky snímky a vypíšte ich 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: Prečítať text tvaru
Iterujte cez tvary a čítajte text z tvarov, ktoré 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: Prečítať vlastnosti dokumentu
Získajte základné vlastnosti 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ženie spätným cyklom
Po prezretí alebo úprave prezentácie ju uložte späť do PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Uloženie na inú cestu vytvorí nový súbor. Uloženie na rovnakú cestu prepíše pôvodný súbor.
Bežné problémy a riešenia
FileNotFoundError
Skontrolujte, že cesta k .pptx súboru je správna vzhľadom na pracovný adresár. Použite pathlib.Path na robustnú konštrukciu 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
Knižnica podporuje .pptx (Office Open XML) iba. Staré .ppt (binárne PowerPoint 97–2003) súbory nie sú podporované.
Tvary nemajú atribút text_frame
Niektoré tvary (Connectors, PictureFrames, GroupShapes) nemajú text_frame. Ochránte pomocou hasattr(shape, "text_frame") and shape.text_frame is not None pred prístupom k textu.
Často kladené otázky
Zachová načítanie celý pôvodný obsah?
Áno. Neznáme XML časti sa pri ukladaní s round‑tripom zachovajú doslovne. Knižnica neodstráni žiadny XML obsah, ktorý ešte nerozoznáva.
Môžem načítať PPTX chránený heslom?
Prezentácie chránené heslom (šifrované) nie sú v tejto edícii podporované.
Môžem extrahovať vložené obrázky?
Získajte kolekciu obrázkov: prs.images vracia the ImageCollection. Každý obrázok má content_type a bytes vlastnosť na čítanie surových dát obrázka.
Je podporované načítanie z pamäťového streamu?
Načítanie priamo z io.BytesIO nie je vystavené v aktuálnom API. Zapíšte bajty najprv do dočasného súboru:
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)