Kako učitati prezentacije u Pythonu

Kako učitati prezentacije u Pythonu

Aspose.Slides FOSS for Python omogućuje vam otvaranje bilo koje .pptx datoteke, pregledavanje njenog sadržaja i ili spremanje natrag u PPTX ili izdvajanje podataka iz nje. Ovaj vodič pokriva otvaranje datoteke, iteriranje slajdova, čitanje teksta oblika i round‑tripping spremanja.

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

Nepožnati XML dijelovi u izvornom datoteci očuvani su doslovno: biblioteka nikada ne uklanja sadržaj koji još ne razumije.


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: Spremanje u oba smjera

Nakon pregleda 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 je li put do datoteke .pptx ispravan u odnosu na radni direktorij. Koristite pathlib.Path za robusnu izgradnju puta:

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). Zastarjele .ppt (binarni PowerPoint 97–2003) datoteke nisu podržane.

Oblici nemaju atribut text_frame

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


Često postavljana pitanja

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

Da. Nepoznati XML dijelovi se čuvaju doslovno pri spremanju u krugu. 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 ediciji.

Mogu li izvući ugrađene slike?

Pristupite kolekciji slika: prs.images vraća ImageCollection. Svaka slika ima svojstvo content_type i svojstvo bytes 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