Kaip įkelti pristatymus į Python
Aspose.Slides FOSS for Python lets you open any .pptx failą, peržiūrėti jo turinį ir arba išsaugoti jį atgal į PPTX, arba išgauti duomenis iš jo. Ši vadovas apima failo atidarymą, skaidrių peržiūrą, formų teksto skaitymą ir išsaugojimo grąžinimą.
Žingsnis po žingsnio vadovas
Žingsnis 1: Įdiekite paketą
pip install aspose-slides-fossŽingsnis 2: Atverti esamą pristatymą
Perduokite failo kelią į slides.Presentation(). Naudokite kontekstų valdyklę, 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.
Žingsnis 3: Peržiūrėti skaidres
Iteruokite per visas skaidres ir spausdinkite 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: Skaityti formų 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: Skaityti dokumento savybes
Gaukite 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: Išsaugoti atgal
Po peržiūros arba modifikavimo, išsaugokite pristatymą 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 iki .pptx failo 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 .pptx (Office Open XML) tik. Senesnės .ppt (binary PowerPoint 97–2003) failai nepalaikomi.
Formoms nėra atributo text_frame
Kai kurie formos (Connectors, PictureFrames, GroupShapes) neturi a text_frame. Apsaugokite su hasattr(shape, "text_frame") and shape.text_frame is not None prieš pasiekiant tekstą.
Dažnai užduodami klausimai
Ar įkėlimas išsaugo visą originalų turinį?
Taip. Nežinomos XML dalys išsaugomos nepakitusiomis, atliekant išsaugojimą sugrįžimą. Biblioteka nepašalins jokio XML turinio, kurio dar nesupranta.
Ar galiu įkelti slaptažodžiu apsaugotą PPTX?
Slaptažodžiu apsaugoti (šifruoti) pristatymai šioje versijoje nepalaikomi.
Ar galiu išgauti įterptus vaizdus?
Pasiekite vaizdų kolekciją: prs.images grąžina ImageCollection. Kiekvienas paveikslas turi content_type ir bytes savybę, skirta nuskaityti neapdorotus paveikslų duomenis.
Ar įkėlimas iš atminties srauto yra palaikomas?
Įkeliama tiesiogiai iš io.BytesIO nėra prieinama dabartinėje API. Pirmiausia į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)