Prezentációk betöltése Pythonban
Aspose.Slides FOSS for Python lehetővé teszi, hogy bármely .pptx fájlt megnyisson, ellenőrizze annak tartalmát, és vagy vissza mentse PPTX formátumba, vagy adatot nyerjen ki belőle. Ez az útmutató a fájl megnyitását, a diák iterálását, az alakzat szövegének olvasását és a mentés körkörös folyamatát tárgyalja.
Lépésről‑lépésre útmutató
1. lépés: A csomag telepítése
pip install aspose-slides-foss2. lépés: Meglévő prezentáció megnyitása
Adja át a fájl útvonalát a slides.Presentation()-nek. Használja a kontextuskezelőt a takarítás biztosításához.
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)Az ismeretlen XML részek a forrásfájlban szó szerint megmaradnak: a könyvtár soha nem távolítja el a tartalmat, amelyet még nem ért meg.
3. lépés: Diák ellenőrzése
Iteráljon végig az összes dián, és írja ki azok indexét:
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")4. lépés: Alakzat szövegének olvasása
Iteráljon a formákon, és olvassa ki a szöveget azokból a formákból, amelyekben van egy 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}")5. lépés: Dokumentum tulajdonságainak olvasása
A fő dokumentumtulajdonságok elérése a prs.document_properties-ból:
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}")6. lépés: Kétirányú mentés
A prezentáció ellenőrzése vagy módosítása után mentse vissza PPTX formátumban:
prs.save("output.pptx", SaveFormat.PPTX)A különböző útvonalra mentés új fájlt hoz létre. Az ugyanarra az útvonalra mentés felülírja az eredetit.
Általános problémák és megoldások
FileNotFoundError
Ellenőrizze, hogy a .pptx fájl elérési útja helyes-e a munkakönyvtárhoz képest. Használja a pathlib.Path‑t a robusztus útvonalépítéshez:
from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
...Exception: File format is not supported
A könyvtár csak .pptx (Office Open XML) formátumot támogat. A régi .ppt (bináris PowerPoint 97–2003) fájlok nem támogatottak.
A Shapes-nek nincs text_frame attribútuma
Néhány alakzat (Connectors, PictureFrames, GroupShapes) nem rendelkezik text_frame-vel. Használjon hasattr(shape, "text_frame") and shape.text_frame is not None-t a szöveg elérése előtt.
Gyakran Ismételt Kérdések
Megőrzi a betöltés az összes eredeti tartalmat?
Igen. Az ismeretlen XML részek szó szerint megmaradnak a körkörös mentés során. A könyvtár nem távolít el semmilyen XML tartalmat, amelyet még nem ért meg.
Betölthetek jelszóval védett PPTX-et?
Jelszóval védett (titkosított) prezentációk nem támogatottak ebben a kiadásban.
Kivonhatok beágyazott képeket?
A képek gyűjteményének elérése: prs.images visszaadja a ImageCollection. Minden képnek van egy content_type és egy bytes tulajdonsága a nyers képadatok olvasásához.
Támogatott-e a betöltés memóriában lévő adatfolyamból?
A io.BytesIO közvetlen betöltése nincs kitéve az aktuális API-ban. Először írja a bájtokat egy ideiglenes fájlba:
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)