Jak načítat prezentace v Pythonu

Jak načítat prezentace v Pythonu

Aspose.Slides FOSS for Python lets you open any .pptx Tento průvodce pokrývá otevření souboru, iterování slajdů, čtení textu tvaru a opakované uložení.

Krok za krokem

Krok 1: Nainstalujte balíček

pip install aspose-slides-foss

Krok 2: Otevřete existující prezentaci

Přeneste cestu souboru na … slides.Presentation().Použijte kontextový manažer k zajištění čistoty.

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 doslova uchovány: knihovna nikdy neodstraňuje obsah, který ještě nechápe.


Krok 3: Zkontrolujte snímky

Iterujte všechny snímky a vytiskně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 ve tvaru

Iterovat tvary a číst 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řístup k vlastnostem jádra dokumentu ze systému . 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í z cesty a zpět

Po prohlídce nebo úpravě prezentace ji uložíte zpět do systému PPTX:

prs.save("output.pptx", SaveFormat.PPTX)

Uložení na jinou cestu vytváří nový soubor.


Obvyklé problémy a řešení

FileNotFoundError

Zkontrolujte, zda cesta k … .pptx soubor je správný ve vztahu k pracovnímu adresáři. Use pathlib.Path pro robustní konstrukci dráhy:

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. Legacy .ppt (binární PowerPoint 972003) soubory nejsou podporovány.

Formy nemají atribut text_frame

Některé tvary (Connectors, PictureFrames, GroupShapes) nemají funkci “spojení” nebo “přidělení”. text_frame.Stráž s … hasattr(shape, "text_frame") and shape.text_frame is not None před přístupem k textu.


Časté otázky

Zachovává načtení veškerý původní obsah?

Ano. Neznámé části XML jsou doslova uchovávány na přehledové paměti. Knihovna neodstraňuje žádný obsah XML, který ještě nechápe.

Můžu si nainstalovat PPTX chráněný heslem?

V této edici nejsou podporovány prezentace chráněné heslem (šifrované).

Můžu vytáhnout vestavěné snímky?

Přístup ke sbírce obrázků: prs.images vrací se číslo ImageCollection.Každý obrázek má … content_type a a) bytes vlastnost čtení dat ze surového snímku.

Podporuje se načítání z in-memory streamu?

Přeložení přímo z: io.BytesIO není vystaven v aktuálním API. Napíšejte nejprve byty 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)

Viz také:

 Čeština