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