Pengantar
Aspose.Slides FOSS for Python gives you full control over the PowerPoint presentation siklus hidup membuat deck dari awal, menambahkan dan mengatur ulang slide, mengisi mereka dengan bentuk, tabel dan teks yang diformat, dan menyimpan hasil ke PPTX, ODP, PDF, atau Semua ini terjadi dalam Python murni tanpa ketergantungan pada Microsoft Office atau binary eksternal.
Perpustakaan ini tersedia di PyPI sebagai: aspose-slides-foss di bawah lisensi MIT. Install dengan itu pip, impor, dan mulai membangun presentasi dalam beberapa baris kode. Apakah Anda mengotomatiskan generasi laporan, membangun pipa slide-deck, atau menyematkan presentasi output dalam aplikasi web, API mencakup seluruh permukaan: slide koleksi, slide master/layout, kumpulan bentuk, bingkai teks, format isian, dan opsi ekspor.
Posting ini berjalan melalui kemampuan manajemen presentasi inti kelas dan metode yang akan Anda gunakan paling banyak saat bekerja dengan slide di Python.
Apa yang Termasuk?
Presentasi Siklus hidup
Pengelolaan Presentation membuat dek baru, memanipulasi isinya, dan kemudian mengubahnya menjadi sebuah game., dan menyimpan ke format yang didukung. Presentasi mendukung protokol context-manager, Jadi sumber daya dilepaskan secara otomatis.
import io
from aspose.slides_foss import Presentation
from aspose.slides_foss.export import SaveFormat
with Presentation() as pres:
# A new presentation starts with one blank slide
print("Slides:", len(pres.slides)) # 1
# Save to a file
pres.save("output.pptx", SaveFormat.PPTX)
# Or save to a stream
buf = io.BytesIO()
pres.save(buf, SaveFormat.PPTX)
Operasi Pengumpulan Slide
SlideCollection memungkinkan Anda menambahkan, memasukkan, kloning, menghapus, dan mengatur ulang slide. Setiap operasi memperbarui indeks internal sehingga len(pres.slides) selalu mencerminkan hitungan saat ini.
from aspose.slides_foss import Presentation, ShapeType
with Presentation() as pres:
layout = pres.layout_slides[0]
# Add a blank slide using the first layout
pres.slides.add_empty_slide(layout)
# Insert at a specific position
pres.slides.insert_empty_slide(1, layout)
# Clone an existing slide (shapes are copied)
pres.slides[0].shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 200, 100)
pres.slides.add_clone(pres.slides[0])
print("Total slides:", len(pres.slides)) # 4
# Remove by index
pres.slides.remove_at(3)
Bentuk dan AutoShapes
Tambahkan persegi panjang, elips, segitiga dan bentuk geometri lainnya ke slide via ShapeCollection.add_auto_shape().Setiap bentuk menunjukkan posisi, ukuran, rotasi., dan mengisi sifat yang bertahan selama siklus menyimpan/memuat ulang.
from aspose.slides_foss import Presentation, ShapeType
with Presentation() as pres:
slide = pres.slides[0]
slide.shapes.clear()
rect = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 150)
rect.rotation = 15
ellipse = slide.shapes.add_auto_shape(ShapeType.ELLIPSE, 400, 50, 200, 200)
# Reorder z-index
slide.shapes.reorder(0, ellipse)
print("Front shape:", slide.shapes[0].shape_type) # ELLIPSE
Tabel-tabel
Buat tabel data dengan ShapeCollection.add_table(), mengatur teks sel melalui TextFrame, menggabungkan sel, dan menerapkan pemformatan batas. Tinggi baris dan kolom lebar cocok dengan nilai yang Anda berikan kepada konstruktor.
from aspose.slides_foss import Presentation, FillType
from aspose.slides_foss.drawing import Color
with Presentation() as pres:
slide = pres.slides[0]
slide.shapes.clear()
table = slide.shapes.add_table(50, 50, [150, 150, 150], [40, 40, 40])
table.rows[0][0].text_frame.text = "Name"
table.rows[0][1].text_frame.text = "Role"
table.rows[0][2].text_frame.text = "Team"
# Merge two cells in the second row
table.merge_cells(table.rows[1][0], table.rows[1][1], False)
# Style the header row borders
for col_idx in range(len(table.columns)):
fmt = table.rows[0][col_idx].cell_format
fmt.border_bottom.fill_format.fill_type = FillType.SOLID
fmt.border_bottom.fill_format.solid_fill_color.color = Color.black
fmt.border_bottom.width = 2
Slide Master dan Layout
Setiap presentasi memiliki hierarki dari master slide dan layout slides. Akses mereka melalui Presentation.masters dan (b) Presentation.layout_slides untuk menerapkan secara konsisten Memformatting di seluruh dek Anda.
from aspose.slides_foss import Presentation
with Presentation() as pres:
master = pres.masters[0]
print("Master layouts:", len(master.layout_slides))
# Pick a layout by type
from aspose.slides_foss import SlideLayoutType
title_layout = pres.layout_slides.get_by_type(SlideLayoutType.TITLE)
if title_layout:
pres.slides.add_empty_slide(title_layout)
Properti dokumen
Membaca dan menulis metadata built-in seperti judul, penulis, dan subjek melalui DocumentProperties properti tetap di file yang disimpan.
from aspose.slides_foss import Presentation
from aspose.slides_foss.export import SaveFormat
with Presentation() as pres:
props = pres.document_properties
props.title = "Quarterly Report"
props.author = "Engineering"
props.subject = "Q1 2026 Results"
pres.save("report.pptx", SaveFormat.PPTX)
Memulai dengan cepat
pip install aspose-slides-foss
from aspose.slides_foss import Presentation, ShapeType, FillType, NullableBool
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat
with Presentation() as pres:
slide = pres.slides[0]
slide.shapes.clear()
# Add a title shape
title = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 30, 860, 80)
tf = title.add_text_frame("Quarterly Report")
tf.paragraphs[0].portions[0].portion_format.font_bold = NullableBool.TRUE
tf.paragraphs[0].portions[0].portion_format.font_height = 28
# Add a data table
table = slide.shapes.add_table(50, 150, [200, 200, 200], [40, 40, 40])
headers = ["Region", "Revenue", "Growth"]
for i, h in enumerate(headers):
table.rows[0][i].text_frame.text = h
# Fill the title shape background
title.fill_format.fill_type = FillType.SOLID
title.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 51, 102)
# Save as PPTX
pres.save("report.pptx", SaveFormat.PPTX)
Format yang Didhukung
| Format (Inggris) | Perpanjangan | Bacalah. | Menulis |
|---|---|---|---|
| PPTX | .pptx (dalam bahasa Inggris) | ✓ | ✓ |
| PPT | .ppt | — | Dianjurkan |
| PPSX | .ppsx (dalam bahasa Inggris) | — | Dianjurkan |
| PPTM | .pptm | — | Dianjurkan |
| POTX | .potx | — | Dianjurkan |
| ODP | .odp | — | Dianjurkan |
| .pdf (dalam bahasa Inggris) | — | Dianjurkan | |
| HTML | .html (dalam bahasa Inggris) | — | Dianjurkan |
| HTML5 | .html (dalam bahasa Inggris) | — | Dianjurkan |
| TIFF | . Tiff | — | Dianjurkan |
| GIF | .gif (berupa gambar) | — | Dianjurkan |
| XPS | .xps | — | Dianjurkan |
| FODP | .fodp | — | Dianjurkan |
| MD | .md | — | Dianjurkan |
Catatan: Saat ini hanya PPTX ekspor yang diimplementasikan. Nilai format lain ada dalam SaveFormat ini untuk kompatibilitas ke depan tetapi belum berfungsi. save() metode selalu menghasilkan output PPTX terlepas dari parameter format.
Open Source & Lisensi
Aspose.Slides FOSS for Python is released under the MIT license. You can use it in proyek pribadi, akademik dan komersial tanpa batasan. Kode sumber adalah tersedia pada tanggal: GitHub dan paket ini diterbitkan pada tanggal PyPI.