Hvordan laste inn presentasjoner i Python

Hvordan laste inn presentasjoner i Python

Aspose.Slides FOSS for Python lets you open any .pptx filen, inspiser innholdet, og enten lagre den tilbake til PPTX eller hente data fra den. Denne guiden dekker åpning av en fil, iterering av lysbilder, lesing av formtekst, og rundtur ved lagring.

Steg-for-steg guide

Steg 1: Installer pakken

pip install aspose-slides-foss

Steg 2: Åpne en eksisterende presentasjon

Send filstien til slides.Presentation(). Bruk kontekstbehandleren for å sikre opprydding.

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)

Ukjente XML-deler i kildefilen beholdes ordrett: biblioteket fjerner aldri innhold det ennå ikke forstår.


Steg 3: Inspiser lysbilder

Iterer over alle lysbilder og skriv ut 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")

Steg 4: Les formtekst

Iterer over former og les tekst fra former som 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}")

Steg 5: Les dokumentegenskaper

Få tilgang til kjerne-dokumentegenskaper 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}")

Steg 6: Rundtur lagring

Etter å ha inspisert eller endret presentasjonen, lagre den tilbake til PPTX:

prs.save("output.pptx", SaveFormat.PPTX)

Lagring til en annen sti oppretter en ny fil. Lagring til samme sti overskriver den opprinnelige.


Vanlige problemer og løsninger

FileNotFoundError

Sjekk at stien til .pptx filen er korrekt i forhold til arbeidskatalogen. Bruk pathlib.Path for robust sti-konstruksjon:

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 støtter .pptx (Office Open XML) kun. Legacy .ppt (binære PowerPoint 97–2003) filer støttes ikke.

Former har ingen text_frame‑attributt

Noen former (Connectors, PictureFrames, GroupShapes) har ikke en text_frame. Beskytt med hasattr(shape, "text_frame") and shape.text_frame is not None før du får tilgang til tekst.


Ofte stilte spørsmål

Bevarer innlasting alt det opprinnelige innholdet?

Ja. Ukjente XML‑deler beholdes ordrett ved rundreise‑lagring. Biblioteket vil ikke fjerne XML‑innhold det ennå ikke forstår.

Kan jeg laste inn en passordbeskyttet PPTX?

Passordbeskyttede (krypterte) presentasjoner støttes ikke i denne utgaven.

Kan jeg hente ut innebygde bilder?

Få tilgang til bildesamlingen: prs.images returnerer the ImageCollection. Hvert bilde har en content_type og en bytes egenskap for å lese rå bildedata.

Støttes innlasting fra en minne‑strøm?

Laster direkte fra io.BytesIO er ikke eksponert i den nåværende API-en. Skriv byte‑ene 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)

Se også

 Norsk