Sådan indlæses præsentationer i Python
Aspose.Slides FOSS for Python giver dig mulighed for at åbne enhver .pptx-fil, inspicere dens indhold og enten gemme den tilbage som PPTX eller udtrække data fra den. Denne vejledning dækker åbning af en fil, gennemløb af slides, læsning af formtekst og round‑tripping af gemningen.
Trin-for-trin guide
Trin 1: Installer pakken
pip install aspose-slides-fossTrin 2: Åbn en eksisterende præsentation
Videregiv filstien til slides.Presentation(). Brug kontekstmanageren for at sikre oprydning.
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)Ukendte XML-dele i kildefilen bevares ordret: biblioteket fjerner aldrig indhold, som det endnu ikke forstår.
Trin 3: Inspicér dias
Iterer over alle slides og udskriv deres 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")Trin 4: Læs formtekst
Iterer over former og læs tekst fra former, der har en 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}")Trin 5: Læs dokumentegenskaber
Få adgang til kerndokumentegenskaber fra 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}")Trin 6: Rundtur-gem
Efter at have inspiceret eller ændret præsentationen, gem den tilbage som PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Gemmer du til en anden sti, oprettes en ny fil. Gemmer du til den samme sti, overskrives den oprindelige.
Almindelige problemer og løsninger
FileNotFoundError
Kontroller, at stien til .pptx‑filen er korrekt i forhold til arbejdsbiblioteket. Brug pathlib.Path til robust stiopbygning:
from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
...Exception: File format is not supported
Biblioteket understøtter kun .pptx (Office Open XML). Ældre .ppt (binære PowerPoint 97–2003) filer understøttes ikke.
Shapes har ingen text_frame-attribut
Nogle former (Connectors, PictureFrames, GroupShapes) har ikke en text_frame. Beskyt med hasattr(shape, "text_frame") and shape.text_frame is not None før du får adgang til tekst.
Ofte stillede spørgsmål
Bevarer indlæsning alt det oprindelige indhold?
Ja. Ukendte XML-dele bevares ordret ved round‑trip‑gemning. Biblioteket vil ikke fjerne noget XML-indhold, som det endnu ikke forstår.
Kan jeg indlæse en adgangskodebeskyttet PPTX?
Adgangskodebeskyttede (krypterede) præsentationer understøttes ikke i denne udgave.
Kan jeg udtrække indlejrede billeder?
Få adgang til billedsamlingen: prs.images returnerer ImageCollection. Hvert billede har en content_type og en bytes egenskab til at læse de rå billeddata.
Er indlæsning fra en in-memory stream understøttet?
Indlæsning direkte fra io.BytesIO er ikke eksponeret i den aktuelle API. Skriv bytes til en midlertidig fil først:
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)