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