Cum să încărcați prezentări în Python

Cum să încărcați prezentări în Python

Aspose.Slides FOSS for Python vă permite să deschideți orice fișier .pptx, să inspectați conținutul său și fie să îl salvați înapoi în PPTX, fie să extrageți date din el. Acest ghid acoperă deschiderea unui fișier, iterarea diapozitivelor, citirea textului formei și salvarea în mod round‑trip.

Ghid pas cu pas

Pasul 1: Instalați pachetul

pip install aspose-slides-foss

Pasul 2: Deschide o prezentare existentă

Transmite calea fișierului către slides.Presentation(). Folosește managerul de context pentru a asigura curățarea.

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)

Părțile XML necunoscute din fișierul sursă sunt păstrate literalmente: biblioteca nu elimină niciodată conținutul pe care nu îl înțelege încă.


Pasul 3: Inspectaţi diapozitivele

Iterați prin toate diapozitivele și afișați indicele lor:

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")

Pasul 4: Citește textul formei

Iterați peste forme și citiți textul din formele care au un 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}")

Pasul 5: Citește proprietățile documentului

Accesați proprietățile de bază ale documentului din 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}")

Pasul 6: Salvare round‑trip

După inspectarea sau modificarea prezentării, salvați-o înapoi în format PPTX:

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

Salvarea într-o cale diferită creează un fișier nou. Salvarea în aceeași cale suprascrie originalul.


Probleme comune și soluții

FileNotFoundError

Verificați că calea către fișierul .pptx este corectă în raport cu directorul de lucru. Utilizați pathlib.Path pentru construcția robustă a căii:

from pathlib import Path
path = Path(__file__).parent / "assets" / "deck.pptx"
with slides.Presentation(str(path)) as prs:
    ...

Exception: File format is not supported

Biblioteca acceptă doar .pptx (Office Open XML). Fișierele vechi .ppt (PowerPoint binar 97–2003) nu sunt acceptate.

Shapes nu au atributul text_frame

Unele forme (Connectors, PictureFrames, GroupShapes) nu au un text_frame. Protejați cu hasattr(shape, "text_frame") and shape.text_frame is not None înainte de a accesa textul.


Întrebări frecvente

Încărcarea păstrează tot conținutul original?

Da. Părțile XML necunoscute sunt păstrate literalmente la salvarea în buclă. Biblioteca nu va elimina niciun conținut XML pe care nu îl înțelege încă.

Pot încărca un PPTX protejat prin parolă?

Prezentările protejate prin parolă (criptate) nu sunt acceptate în această ediție.

Pot să extrag imagini încorporate?

Accesați colecția de imagini: prs.images returnează ImageCollection. Fiecare imagine are o proprietate content_type și o proprietate bytes pentru a citi datele brute ale imaginii.

Este suportată încărcarea dintr-un flux în memorie?

Încărcarea directă din io.BytesIO nu este expusă în API‑ul curent. Scrieți octeții într‑un fișier temporar mai întâi:

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)

Vezi și

 Română