Kaip įkelti prezentacijas Python kalboje

Kaip įkelti prezentacijas Python kalboje

Aspose.Slides FOSS for Python leidžia atverti bet kokį .pptx failą, peržiūrėti jo turinį ir arba išsaugoti jį atgal į PPTX, arba išgauti duomenis iš jo. Šiame vadove nagrinėjami failo atidarymas, skaidrių iteravimas, formų teksto skaitymas ir išsaugojimo round‑tripping.

Žingsnis po žingsnio vadovas

Žingsnis 1: įdiekite paketą

pip install aspose-slides-foss

2 žingsnis: Atidaryti esamą pristatymą

Perduokite failo kelią slides.Presentation(). Naudokite konteksto valdytoją, 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.


3 žingsnis: Peržiūrėti skaidres

Iteruokite per visas skaidres ir išveskite 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: Perskaityti formos 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: Perskaityti dokumento savybes

Gauti 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: Apvalaus kelio išsaugojimas

Patikrinus arba modifikuojant prezentaciją, išsaugokite ją 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 į .pptx failą 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 tik .pptx (Office Open XML). Senesni .ppt (dvejetainiai PowerPoint 97–2003) failai nepalaikomi.

Figūromos neturi text_frame atributo

Kai kurie formos (Connectors, PictureFrames, GroupShapes) neturi text_frame. Prieš gaunant tekstą, apsaugokite su hasattr(shape, "text_frame") and shape.text_frame is not None.


Dažniausiai užduodami klausimai

Ar įkėlimas išsaugo visą originalų turinį?

Taip. Nežinomos XML dalys išsaugomos nepakitusiomis atliekant dvigubą išsaugojimą. Biblioteka nepašalins jokio XML turinio, kurio dar nesupranta.

Ar galiu įkelti slaptažodžiu apsaugotą PPTX?

Šioje leidimo versijoje nepalaikomos slaptažodžiu apsaugotos (užšifruotos) prezentacijos.

Ar galiu išgauti įterptus vaizdus?

Pasiekite vaizdų kolekciją: prs.images grąžina ImageCollection. Kiekvienas vaizdas turi content_type ir bytes savybes, kad perskaitytų neapdorotus vaizdo duomenis.

Ar įkėlimas iš atminties srauto palaikomas?

Tiesioginis įkėlimas iš io.BytesIO nėra prieinamas dabartinėje API. Pirma į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)

Žr. taip pat

 Lietuvių