Cara Memuatkan Pembentangan dalam Python

Cara Memuatkan Pembentangan dalam Python

Aspose.Slides FOSS for Python membolehkan anda membuka mana-mana fail .pptx, memeriksa kandungannya, dan sama ada menyimpannya kembali ke PPTX atau mengekstrak data daripadanya. Panduan ini merangkumi membuka fail, mengulangi slaid, membaca teks bentuk, dan proses simpan semula.

Panduan Langkah demi Langkah

Langkah 1: Pasang Pakej

pip install aspose-slides-foss

Langkah 2: Buka Persembahan Sedia Ada

Berikan laluan fail kepada slides.Presentation(). Gunakan pengurus konteks untuk memastikan pembersihan.

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)

Bahagian XML yang tidak diketahui dalam fail sumber dipelihara secara verbatim: perpustakaan tidak pernah mengeluarkan kandungan yang belum difahaminya.


Langkah 3: Periksa Slaid

Ulangi semua slaid dan cetak indeksnya:

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

Langkah 4: Baca Teks Bentuk

Ulangi melalui bentuk dan baca teks dari bentuk yang mempunyai 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}")

Langkah 5: Baca Sifat Dokumen

Akses sifat dokumen teras dari 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}")

Langkah 6: Simpan Pusingan

Selepas memeriksa atau mengubah suai persembahan, simpan semula ke PPTX:

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

Menyimpan ke laluan yang berbeza mencipta fail baru. Menyimpan ke laluan yang sama menimpa fail asal.


Isu Umum dan Penyelesaian

FileNotFoundError

Semak bahawa laluan ke fail .pptx adalah betul relatif kepada direktori kerja. Gunakan pathlib.Path untuk pembinaan laluan yang kukuh:

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

Exception: File format is not supported

Perpustakaan menyokong .pptx (Office Open XML) sahaja. Fail .ppt (PowerPoint binari 97–2003) warisan tidak disokong.

Bentuk tidak mempunyai atribut text_frame

Beberapa bentuk (Connectors, PictureFrames, GroupShapes) tidak mempunyai text_frame. Lindungi dengan hasattr(shape, "text_frame") and shape.text_frame is not None sebelum mengakses teks.


Soalan Lazim

Adakah pemuatan mengekalkan semua kandungan asal?

Ya. Bahagian XML yang tidak diketahui dipelihara secara verbatim semasa penyimpanan round‑trip. Perpustakaan tidak akan mengeluarkan sebarang kandungan XML yang belum difahaminya.

Bolehkah saya memuatkan PPTX yang dilindungi kata laluan?

Pembentangan yang dilindungi kata laluan (disulitkan) tidak disokong dalam edisi ini.

Bolehkah saya mengekstrak imej terbenam?

Akses koleksi imej: prs.images mengembalikan ImageCollection. Setiap imej mempunyai sifat content_type dan bytes untuk membaca data imej mentah.

Adakah memuatkan daripada aliran dalam memori disokong?

Memuat secara langsung dari io.BytesIO tidak didedahkan dalam API semasa. Tulis bait ke fail sementara terlebih dahulu:

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)

Lihat Juga

 Bahasa Melayu