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