Cara Memuat Presentasi di Python
Aspose.Slides FOSS for Python lets you open any .pptx file, periksa isinya, dan baik menyimpannya kembali ke PPTX atau mengekstrak data darinya. Panduan ini mencakup membuka file, mengiterasi slide, membaca teks shape, dan melakukan round‑trip penyimpanan.
Panduan Langkah-demi-Langkah
Langkah 1: Instal Paket
pip install aspose-slides-fossLangkah 2: Buka Presentasi yang Ada
Berikan jalur file ke slides.Presentation(). Gunakan context manager 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)Bagian XML yang tidak dikenal dalam file sumber dipertahankan secara verbatim: perpustakaan tidak pernah menghapus konten yang belum dipahaminya.
Langkah 3: Periksa Slide
Iterasi semua slide 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
Iterasi shape dan baca teks dari shape yang memiliki 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 Properti Dokumen
Akses properti dokumen inti 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 Round-Trip
Setelah memeriksa atau memodifikasi presentasi, simpan kembali ke PPTX:
prs.save("output.pptx", SaveFormat.PPTX)Menyimpan ke jalur yang berbeda membuat file baru. Menyimpan ke jalur yang sama menimpa file asli.
Masalah Umum dan Solusinya
FileNotFoundError
Periksa bahwa jalur ke .pptx file sudah benar relatif terhadap direktori kerja. Gunakan pathlib.Path untuk konstruksi jalur yang kuat:
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 ini mendukung .pptx (Office Open XML) saja. Legacy .ppt (binary PowerPoint 97–2003) tidak didukung.
Shape tidak memiliki atribut text_frame
Beberapa shape (Connectors, PictureFrames, GroupShapes) tidak memiliki text_frame. Lindungi dengan hasattr(shape, "text_frame") and shape.text_frame is not None sebelum mengakses teks.
Pertanyaan yang Sering Diajukan
Apakah pemuatan mempertahankan semua konten asli?
Ya. Bagian XML yang tidak dikenal dipertahankan persis pada penyimpanan round‑trip. Perpustakaan tidak akan menghapus konten XML apa pun yang belum dipahaminya.
Bisakah saya memuat PPTX yang dilindungi kata sandi?
Presentasi yang dilindungi kata sandi (terenkripsi) tidak didukung dalam edisi ini.
Bisakah saya mengekstrak gambar yang disematkan?
Akses koleksi gambar: prs.images mengembalikan the ImageCollection. Setiap gambar memiliki sebuah content_type dan sebuah bytes properti untuk membaca data gambar mentah.
Apakah pemuatan dari aliran memori (in‑memory stream) didukung?
Memuat langsung dari io.BytesIO tidak diekspos dalam API saat ini. Tulis byte ke file 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)