Ako načítať prezentácie v Pythone

Ako načítať prezentácie v Pythone

Aspose.Slides FOSS for Python vám umožní otvoriť akýkoľvek .pptx súbor, preskúmať jeho obsah a buď ho uložiť späť do PPTX, alebo z neho extrahovať dáta. Tento sprievodca pokrýva otváranie súboru, prechádzanie snímkami, čítanie textu tvarov a spätné ukladanie.

Návod krok za krokom

Krok 1: Nainštalovať balík

pip install aspose-slides-foss

Krok 2: Otvorte existujúcu prezentáciu

Zadajte cestu k súboru do slides.Presentation(). Použite kontextový manažér 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 nepozná.


Krok 3: Skontrolovať snímky

Iterujte cez 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čítanie textu tvaru

Iterujte cez tvary a prečí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čítanie vlastností 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 v oboch smeroch

Po skontrolovaní 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ý.


Bežné problémy a riešenia

FileNotFoundError

Skontrolujte, či je cesta k súboru .pptx správna vzhľadom na pracovný adresár. Použite pathlib.Path pre 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 iba .pptx (Office Open XML). Súbory staršej verzie .ppt (binárny PowerPoint 97–2003) nie sú podporované.

Tvary nemajú atribút text_frame

Niektoré tvary (Connectors, PictureFrames, GroupShapes) nemajú text_frame. Pred prístupom k textu použite ochranu pomocou hasattr(shape, "text_frame") and shape.text_frame is not None.


Často kladené otázky

Zachová načítanie všetok pôvodný obsah?

Áno. Neznáme časti XML sa pri uložení v režime round‑trip zachovávajú doslovne. Knižnica neodstráni žiadny XML obsah, ktorý ešte nerozumie.

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?

Prístup k zbierke obrázkov: prs.images vracia ImageCollection. Každý obrázok má vlastnosť content_type a vlastnosť bytes na čítanie surových dát obrázka.

Je načítanie z pamäťového streamu podporované?

Načítanie priamo z io.BytesIO nie je v súčasnom API vystavené. Najprv zapíšte bajty 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