Cara Membuat Presentasi di Python

Cara Membuat Presentasi di Python

Aspose.Slides FOSS for Python memungkinkan Anda membuat presentasi PowerPoint sepenuhnya dalam Python tanpa ketergantungan pada Microsoft Office. Panduan ini menunjukkan cara membuat presentasi baru, menambahkan slide dan bentuk, memformat teks, dan menyimpan hasilnya.

Panduan Langkah-demi-Langkah

Langkah 1: Instal Paket

Instal Aspose.Slides FOSS dari PyPI. Python 3.10 atau yang lebih baru diperlukan.

pip install aspose-slides-foss

Verifikasi instalasi:

import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")

Dependensi lxml diinstal secara otomatis. Tidak ada paket sistem lain yang diperlukan.


Langkah 2: Impor Modul yang Diperlukan

Impor paket dan enum SaveFormat yang diperlukan untuk menyimpan.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeType

Semua konstanta tipe bentuk berada di aspose.slides_foss.ShapeType. Semua tipe pemformatan (FillType, NullableBool) juga berada di aspose.slides_foss.


Langkah 3: Buat Presentasi

Gunakan slides.Presentation() sebagai manajer konteks. Presentasi baru dimulai dengan satu slide kosong.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    print(f"Slides in new presentation: {len(prs.slides)}")
    # work with prs inside this block
    prs.save("output.pptx", SaveFormat.PPTX)

Penting: Selalu buka dan gunakan Presentation di dalam blok with. Jangan menyimpan referensi di luar pernyataan with; sumber daya tidak akan dilepaskan dengan benar.


Langkah 4: Akses Slide

Slide pertama berada pada indeks 0. Presentasi kosong memiliki tepat satu slide.

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]  # zero-based index
    print(f"Slide at index 0: {slide}")
    prs.save("output.pptx", SaveFormat.PPTX)

Langkah 5: Tambahkan Bentuk

Gunakan slide.shapes.add_auto_shape() untuk menambahkan AutoShape. Parameter‑nya adalah (shape_type, x, y, width, height) semuanya dalam poin (1 poin = 1/72 inci; slide standar berukuran 720 × 540 pt).

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]

    # Rectangle at (50, 50) with 400 wide and 120 tall
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 400, 120)

    # Attach a text frame
    shape.add_text_frame("Hello from Aspose.Slides FOSS!")

    prs.save("with-shape.pptx", SaveFormat.PPTX)

Langkah 6: Simpan Presentasi

Panggil prs.save(path, SaveFormat.PPTX) sebelum blok with keluar. PPTX adalah satu-satunya format output yang didukung.

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

File ditulis secara atomik; jika terjadi kesalahan sebelum pemanggilan ini, tidak ada file output yang dibuat.


Contoh Kerja Lengkap

Script berikut membuat presentasi dua slide dengan title shape pada slide pertama dan tabel pada slide kedua.

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    # --- Slide 1: title shape ---
    slide1 = prs.slides[0]
    title = slide1.shapes.add_auto_shape(ShapeType.RECTANGLE, 40, 40, 640, 80)
    tf = title.add_text_frame("Q1 Results: Executive Summary")
    fmt = tf.paragraphs[0].portions[0].portion_format
    fmt.font_height = 32
    fmt.font_bold = NullableBool.TRUE
    fmt.fill_format.fill_type = FillType.SOLID
    fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 70, 127)

    # --- Slide 2: table ---
    prs.slides.add_empty_slide(prs.layout_slides[0])
    slide2 = prs.slides[1]
    table = slide2.shapes.add_table(40, 40, [200.0, 120.0, 120.0], [40.0, 40.0, 40.0])
    headers = ["Region", "Revenue", "Growth"]
    data = [
        ["North", "$1.2M", "+8%"],
        ["South", "$0.9M", "+4%"],
    ]
    for col, header in enumerate(headers):
        table.rows[0][col].text_frame.text = header
    for row_idx, row_data in enumerate(data):
        for col, cell_text in enumerate(row_data):
            table.rows[row_idx + 1][col].text_frame.text = cell_text

    prs.save("q1-results.pptx", SaveFormat.PPTX)

print("Saved q1-results.pptx")

Masalah Umum dan Solusi

ResourceWarning: unclosed Presentation

Anda sedang menginstansiasi Presentation tanpa blok with. Selalu gunakan:

with slides.Presentation() as prs:
    ...

AttributeError: __enter__

Jika Anda melihat kesalahan ini, periksa bahwa Anda mengimpor aspose.slides_foss (bukan aspose.slides). Nama paket di PyPI adalah aspose-slides-foss dan impor runtime adalah aspose.slides_foss.

TypeError: SaveFormat.PPTX is not callable

SaveFormat.PPTX adalah anggota enum, bukan fungsi. Gunakan itu sebagai prs.save("file.pptx", SaveFormat.PPTX).


Pertanyaan yang Sering Diajukan

Berapa ukuran slide default?

Sebuah Presentation() baru membuat slide dengan ukuran standar 10 × 7,5 inci (720 × 540 poin). Mengubah ukuran slide belum didukung dalam edisi ini.

Bisakah saya menambahkan lebih dari satu slide?

Ya. Panggil prs.slides.add_empty_slide(prs.layout_slides[0]) untuk menambahkan slide kosong dan mengaksesnya dengan indeks:

prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]

Bisakah saya membuka file yang sudah ada dan menambahkan slide?

Ya:

with slides.Presentation("existing.pptx") as prs:
    prs.slides.add_empty_slide(prs.layout_slides[0])
    prs.save("existing.pptx", SaveFormat.PPTX)

Format apa yang dapat saya simpan?

Hanya SaveFormat.PPTX yang didukung. Ekspor ke PDF, HTML, SVG, atau gambar tidak tersedia dalam edisi ini.


Lihat Juga

 Bahasa Indonesia