Cum să încărcați prezentări în Python
Aspose.Slides FOSS for Python vă permite să deschideți orice fișier .pptx, să inspectați conținutul său și fie să îl salvați înapoi în PPTX, fie să extrageți date din el. Acest ghid acoperă deschiderea unui fișier, iterarea diapozitivelor, citirea textului formei și salvarea în mod round‑trip.
Ghid pas cu pas
Pasul 1: Instalați pachetul
pip install aspose-slides-fossPasul 2: Deschide o prezentare existentă
Transmite calea fișierului către slides.Presentation(). Folosește managerul de context pentru a asigura curățarea.
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)Părțile XML necunoscute din fișierul sursă sunt păstrate literalmente: biblioteca nu elimină niciodată conținutul pe care nu îl înțelege încă.
Pasul 3: Inspectaţi diapozitivele
Iterați prin toate diapozitivele și afișați indicele lor:
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")Pasul 4: Citește textul formei
Iterați peste forme și citiți textul din formele care au un 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}")Pasul 5: Citește proprietățile documentului
Accesați proprietățile de bază ale documentului din 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}")Pasul 6: Salvare round‑trip
După inspectarea sau modificarea prezentării, salvați-o înapoi în format PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Salvarea într-o cale diferită creează un fișier nou. Salvarea în aceeași cale suprascrie originalul.
Probleme comune și soluții
FileNotFoundError
Verificați că calea către fișierul .pptx este corectă în raport cu directorul de lucru. Utilizați pathlib.Path pentru construcția robustă a căii:
from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
...Exception: File format is not supported
Biblioteca acceptă doar .pptx (Office Open XML). Fișierele vechi .ppt (PowerPoint binar 97–2003) nu sunt acceptate.
Shapes nu au atributul text_frame
Unele forme (Connectors, PictureFrames, GroupShapes) nu au un text_frame. Protejați cu hasattr(shape, "text_frame") and shape.text_frame is not None înainte de a accesa textul.
Întrebări frecvente
Încărcarea păstrează tot conținutul original?
Da. Părțile XML necunoscute sunt păstrate literalmente la salvarea în buclă. Biblioteca nu va elimina niciun conținut XML pe care nu îl înțelege încă.
Pot încărca un PPTX protejat prin parolă?
Prezentările protejate prin parolă (criptate) nu sunt acceptate în această ediție.
Pot să extrag imagini încorporate?
Accesați colecția de imagini: prs.images returnează ImageCollection. Fiecare imagine are o proprietate content_type și o proprietate bytes pentru a citi datele brute ale imaginii.
Este suportată încărcarea dintr-un flux în memorie?
Încărcarea directă din io.BytesIO nu este expusă în API‑ul curent. Scrieți octeții într‑un fișier temporar mai întâi:
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)