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 spremite natrag u PPTX ili iz nje izvadite podatke. Ovaj vodič pokriva otvaranje datoteke, iteriranje slajdova, čitanje teksta oblika i povratno spremanje.

Vodič korak po korak

Korak 1: Instalirajte paket

pip install aspose-slides-foss

Korak 2: Otvorite postojeću prezentaciju

Proslijedite putanju datoteke u slides.Presentation(). Koristite upravitelj kontekstom kako 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 dijelovi u izvornoj datoteci čuvaju se doslovno: biblioteka nikada ne uklanja sadržaj koji još ne razumije.


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: Round‑Trip spremanje

Nakon pregledavanja ili izmjene prezentacije, spremite je natrag u PPTX:

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

Spremanje na drugu putanju stvara novu datoteku. Spremanje na istu putanju prepisuje original.


Uobičajeni problemi i rješenja

FileNotFoundError

Provjerite da je putanja do .pptx datoteke ispravna u odnosu na radni direktorij. 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 (binarne PowerPoint 97–2003) datoteke nisu podržane.

Oblici nemaju atribut text_frame

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


Često postavljana pitanja

Čuva li učitavanje sav izvorni sadržaj?

Da. Nepoznati XML dijelovi se čuvaju doslovno pri round‑trip spremanju. Biblioteka neće ukloniti nikakav XML sadržaj koji još ne razumije.

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

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

Mogu li izdvojiti ugrađene slike?

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

Je li učitavanje iz memorijskog toka podržano?

Učitavanje izravno iz io.BytesIO nije izloženo u trenutnom API-ju. Prvo zapišite bajtove u privremenu datoteku:

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đer

 Hrvatski