Kaip įkelti prezentacijas Python kalboje
Aspose.Slides FOSS for Python leidžia atverti bet kokį .pptx failą, peržiūrėti jo turinį ir arba išsaugoti jį atgal į PPTX, arba išgauti duomenis iš jo. Šiame vadove nagrinėjami failo atidarymas, skaidrių iteravimas, formų teksto skaitymas ir išsaugojimo round‑tripping.
Žingsnis po žingsnio vadovas
Žingsnis 1: įdiekite paketą
pip install aspose-slides-foss2 žingsnis: Atidaryti esamą pristatymą
Perduokite failo kelią slides.Presentation(). Naudokite konteksto valdytoją, kad užtikrintumėte išvalymą.
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)Nežinomos XML dalys šaltinio faile išsaugomos nepakitusiomis: biblioteka niekada nepašalina turinio, kurio dar nesupranta.
3 žingsnis: Peržiūrėti skaidres
Iteruokite per visas skaidres ir išveskite jų 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")Žingsnis 4: Perskaityti formos tekstą
Iteruokite per formas ir skaitykite tekstą iš formų, kurios turi 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}")Žingsnis 5: Perskaityti dokumento savybes
Gauti pagrindines dokumento savybes iš 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}")Žingsnis 6: Apvalaus kelio išsaugojimas
Patikrinus arba modifikuojant prezentaciją, išsaugokite ją atgal į PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Išsaugojimas į kitą kelią sukuria naują failą. Išsaugojimas į tą patį kelią perrašo originalą.
Dažnos problemos ir sprendimai
FileNotFoundError
Patikrinkite, ar kelias į .pptx failą yra teisingas, atsižvelgiant į darbinį katalogą. Naudokite pathlib.Path patikimam kelio konstruavimui:
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 palaiko tik .pptx (Office Open XML). Senesni .ppt (dvejetainiai PowerPoint 97–2003) failai nepalaikomi.
Figūromos neturi text_frame atributo
Kai kurie formos (Connectors, PictureFrames, GroupShapes) neturi text_frame. Prieš gaunant tekstą, apsaugokite su hasattr(shape, "text_frame") and shape.text_frame is not None.
Dažniausiai užduodami klausimai
Ar įkėlimas išsaugo visą originalų turinį?
Taip. Nežinomos XML dalys išsaugomos nepakitusiomis atliekant dvigubą išsaugojimą. Biblioteka nepašalins jokio XML turinio, kurio dar nesupranta.
Ar galiu įkelti slaptažodžiu apsaugotą PPTX?
Šioje leidimo versijoje nepalaikomos slaptažodžiu apsaugotos (užšifruotos) prezentacijos.
Ar galiu išgauti įterptus vaizdus?
Pasiekite vaizdų kolekciją: prs.images grąžina ImageCollection. Kiekvienas vaizdas turi content_type ir bytes savybes, kad perskaitytų neapdorotus vaizdo duomenis.
Ar įkėlimas iš atminties srauto palaikomas?
Tiesioginis įkėlimas iš io.BytesIO nėra prieinamas dabartinėje API. Pirma įrašykite baitus į laikinąjį failą:
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)