Ako načítať prezentácie v Python

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-foss

Krok 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)

Pozri tiež

 Slovenčina