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