Cara Memuat Presentasi di Python

Cara Memuat Presentasi di Python

Aspose.Slides FOSS for Python memungkinkan Anda membuka file .pptx apa pun, memeriksa isinya, dan baik menyimpannya kembali ke PPTX atau mengekstrak data darinya. Panduan ini mencakup membuka file, mengiterasi slide, membaca teks shape, dan proses round‑tripping penyimpanan.

Panduan Langkah-demi-Langkah

Langkah 1: Instal Paket

pip install aspose-slides-foss

Langkah 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 melalui bentuk dan baca teks dari bentuk 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 Putar Balik

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 Solusi

FileNotFoundError

Periksa bahwa jalur ke file .pptx 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 hanya mendukung .pptx (Office Open XML). File .ppt (PowerPoint biner 97–2003) lama tidak didukung.

Shapes tidak memiliki atribut text_frame

Beberapa bentuk (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 verbatim pada penyimpanan putar‑balik. 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 ImageCollection. Setiap gambar memiliki properti content_type dan bytes untuk membaca data gambar mentah.

Apakah memuat dari in-memory stream didukung?

Memuat langsung dari io.BytesIO tidak tersedia 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)

Lihat Juga

 Bahasa Indonesia