Kako učitati prezentacije u Pythonu

Kako učitati prezentacije u Pythonu

Aspose.Slides FOSS for Python omogućava otvaranje bilo kog .pptx fajla, pregled njegovog sadržaja i ili čuvanje nazad u PPTX ili izdvajanje podataka iz njega. Ovaj vodič pokriva otvaranje fajla, iteriranje slajdova, čitanje teksta oblika i round‑tripping čuvanja.

Vodič korak po korak

Korak 1: Instalirajte paket

pip install aspose-slides-foss

Korak 2: Otvorite postojeću prezentaciju

Prosledite putanju do fajla 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)

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


Korak 3: Pregledaj 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: Čitanje teksta oblika

Iterirajte kroz oblike i proč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: Čitanje svojstava 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čuvaj za povratni put

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

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

Čuvanje na drugu putanju kreira novu datoteku. Čuvanje na istu putanju prepisuje original.


Уобичајени проблеми и решења

FileNotFoundError

Proverite da li je putanja do fajla .pptx 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 samo .pptx (Office Open XML). Zastareli .ppt (binarni PowerPoint 97–2003) fajlovi nisu podržani.

Oblici nemaju atribut text_frame

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


Često postavljana pitanja

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

Da. Nepoznati XML delovi se čuvaju doslovno prilikom čuvanja u krugu. 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 (šifrovane) nisu podržane u ovoj verziji.

Mogu li izvući 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. Prvo upišite bajtove u privremeni fajl:

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)

Види такође

 Српски