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