Hur man laddar presentationer i Python

Hur man laddar presentationer i Python

Aspose.Slides FOSS for Python lets you open any .pptx fil, inspektera dess innehåll och antingen spara tillbaka till PPTX eller extrahera data från den. Denna guide täcker att öppna en fil, iterera bilder, läsa formtext och round‑trip‑spara.

Steg-för-steg-guide

Steg 1: Installera paketet

pip install aspose-slides-foss

Steg 2: Öppna en befintlig presentation

Skicka filvägen till slides.Presentation(). Använd context manager för att säkerställa rensning.

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)

Okända XML‑delar i källfilen bevaras ordagrant: biblioteket tar aldrig bort innehåll som det ännu inte förstår.


Steg 3: Inspektera bilder

Iterera över alla bilder och skriv ut deras index:

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: Läs formtext

Iterera över former och läs text från 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: Läs dokumentegenskaper

Åtkomst till kärndokumentegenskaper från 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: Round‑Trip‑sparning

Efter att ha inspekterat eller modifierat presentationen, spara den tillbaka till PPTX:

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

Att spara till en annan sökväg skapar en ny fil. Att spara till samma sökväg skriver över originalet.


Vanliga problem och lösningar

FileNotFoundError

Kontrollera att sökvägen till .pptx filen är korrekt relativt till arbetskatalogen. Använd pathlib.Path för robust sökvägskonstruktion:

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ödjer .pptx (Office Open XML) endast. Äldre .ppt (binära PowerPoint 97–2003) filer stöds inte.

Former har inget text_frame‑attribut

Vissa former (Connectors, PictureFrames, GroupShapes) har ingen text_frame. Skydda med hasattr(shape, "text_frame") and shape.text_frame is not None innan du får åtkomst till text.


Vanliga frågor

Behåller inläsning allt originalinnehåll?

Ja. Okända XML‑delar bevaras ordagrant vid sparning med rundresa. Biblioteket tar inte bort någon XML‑innehåll som det ännu inte förstår.

Kan jag läsa in en lösenordsskyddad PPTX?

Lösenordsskyddade (krypterade) presentationer stöds inte i den här utgåvan.

Kan jag extrahera inbäddade bilder?

Åtkomst till bildsamlingen: prs.images returnerar ImageCollection. Varje bild har en content_type och en bytes egenskap för att läsa den råa bilddata.

Stöds inläsning från en minnesström?

Laddar direkt från io.BytesIO är inte exponerad i det nuvarande API:et. Skriv bytes till en temporär 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 även

 Svenska