Cara Memuatkan Pembentangan dalam Python

Cara Memuatkan Pembentangan dalam Python

Aspose.Slides FOSS for Python lets you open any .pptx fail, periksa kandungannya, dan sama ada simpan semula ke PPTX atau ekstrak data daripadanya. Panduan ini meliputi membuka fail, mengulangi slaid, membaca teks bentuk, dan menyimpan semula secara round‑tripping.

Panduan Langkah demi Langkah

Langkah 1: Pasang Pakej

pip install aspose-slides-foss

Langkah 2: Buka Persembahan Sedia Ada

Hantar 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 indeks mereka:

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 bentuk-bentuk dan baca teks daripada 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 teras dokumen 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 Balik

Selepas memeriksa atau mengubah persembahan, simpan kembali ke PPTX:

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

Menyimpan ke laluan yang berbeza akan mencipta fail baru. Menyimpan ke laluan yang sama akan menulis ganti fail asal.


Isu Umum dan Penyelesaian

FileNotFoundError

Semak bahawa laluan ke .pptx fail 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

Pustaka menyokong .pptx (Office Open XML) sahaja. Legasi .ppt (fail PowerPoint binari 97–2003) 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 dikenali dipelihara secara verbatim semasa simpanan round‑trip. Perpustakaan tidak akan membuang sebarang kandungan XML yang belum difahaminya.

Bolehkah saya memuatkan PPTX yang dilindungi kata laluan?

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

Bolehkah saya mengekstrak imej terbenam?

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

Adakah pemuatan dari aliran dalam memori disokong?

Memuatkan 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