Kako učitati prezentacije u Python

Kako učitati prezentacije u Python

Aspose.Slides FOSS for Python lets you open any .pptx datoteku, pregledajte njen sadržaj i ili je sačuvajte nazad u PPTX ili iz nje izvadite podatke. Ovaj vodič pokriva otvaranje datoteke, iteriranje slajdova, čitanje teksta oblika i ponovnu obradu pri čuvanju.

Vodič korak po korak

Korak 1: Instalirajte paket

pip install aspose-slides-foss

Korak 2: Otvorite postojeću prezentaciju

Prosledite putanju do datoteke u slides.Presentation(). Koristite menadžer konteksta da biste osigurali čišćenje.

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)

Nepoznati XML delovi u izvornom fajlu se čuvaju doslovno: biblioteka nikada ne uklanja sadržaj koji još ne razume.


Korak 3: Pregledajte slajdove

Iterirajte kroz sve slajdove i ispišite njihov indeks:

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

Korak 4: Pročitajte tekst oblika

Iterirajte kroz oblike i čitajte tekst iz oblika koji imaju 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}")

Korak 5: Pročitajte svojstva dokumenta

Pristupite osnovnim svojstvima dokumenta iz 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}")

Korak 6: Sačuvajte u round‑trip režimu

Nakon pregleda ili izmena prezentacije, sačuvajte je nazad u PPTX:

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

Čuvanje na drugu putanju kreira novi fajl. Čuvanje na istu putanju prepisuje original.


Uobičajeni problemi i rešenja

FileNotFoundError

Proverite da li je putanja do .pptx datoteke ispravna u odnosu na radni direktorijum. Koristite pathlib.Path za robusnu konstrukciju putanje:

from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
    ...

Exception: File format is not supported

Biblioteka podržava .pptx (Office Open XML) samo. Legacy .ppt (binary PowerPoint 97–2003) fajlovi nisu podržani.

Oblici nemaju atribut text_frame

Neki oblici (Connectors, PictureFrames, GroupShapes) nemaju text_frame. Zaštitite sa hasattr(shape, "text_frame") and shape.text_frame is not None pre pristupa tekstu.


Često postavljana pitanja

Da li učitavanje čuva sav originalni sadržaj?

Da. Nepoznati XML delovi se čuvaju doslovno prilikom round‑trip čuvanja. Biblioteka neće ukloniti bilo koji XML sadržaj koji još ne razume.

Mogu li učitati PPTX zaštićen lozinkom?

Prezentacije zaštićene lozinkom (enkriptovane) nisu podržane u ovoj verziji.

Mogu li da izvučem ugrađene slike?

Pristupite kolekciji slika: prs.images vraća ImageCollection. Svaka slika ima content_type i bytes svojstvo za čitanje sirovih podataka slike.

Da li je učitavanje iz memorijskog toka podržano?

Učitavanje direktno iz io.BytesIO nije izloženo u trenutnom API‑ju. Napišite bajtove u privremeni fajl prvo:

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)

Vidi takođe

 Српски