Cara Membuat Pembentangan dalam Python
Aspose.Slides FOSS for Python membolehkan anda mencipta persembahan PowerPoint sepenuhnya dalam Python tanpa kebergantungan pada Microsoft Office. Panduan ini menunjukkan cara mencipta persembahan baru, menambah slaid dan bentuk, memformat teks, dan menyimpan hasilnya.
Panduan Langkah demi Langkah
Langkah 1: Pasang Pakej
Pasang Aspose.Slides FOSS dari PyPI. Python 3.10 atau lebih baru diperlukan.
pip install aspose-slides-fossSahkan pemasangan:
import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")Kebergantungan lxml dipasang secara automatik. Tiada pakej sistem lain diperlukan.
Langkah 2: Import Modul yang Diperlukan
Import pakej 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 ShapeTypeSemua pemalar jenis bentuk berada dalam aspose.slides_foss.ShapeType. Semua jenis pemformatan (FillType, NullableBool) juga berada dalam aspose.slides_foss.
Langkah 3: Buat Persembahan
Gunakan slides.Presentation() sebagai pengurus konteks. Pembentangan baru bermula dengan satu slaid 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: Sentiasa buka dan gunakan Presentation di dalam blok with. Jangan simpan rujukan di luar pernyataan with; sumber tidak akan dilepaskan dengan betul.
Langkah 4: Akses Slaid
Slaid pertama berada pada indeks 0. Persembahan kosong mempunyai tepat satu slaid.
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: Tambah Bentuk
Gunakan slide.shapes.add_auto_shape() untuk menambah AutoShape. Parameter ialah (shape_type, x, y, width, height) semua dalam titik (1 titik = 1/72 inci; slaid standard ialah 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 Persembahan
Panggil prs.save(path, SaveFormat.PPTX) sebelum blok with keluar. PPTX adalah satu-satunya format output yang disokong.
prs.save("result.pptx", SaveFormat.PPTX)Fail ditulis secara atomik; jika ralat berlaku sebelum panggilan ini, tiada fail output yang dibuat.
Contoh Kerja Lengkap
Skrip berikut menghasilkan persembahan dua slaid dengan bentuk tajuk pada slaid pertama dan jadual pada slaid 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")Isu Umum dan Penyelesaian
ResourceWarning: unclosed Presentation
Anda sedang menginstansiasi Presentation tanpa blok with. Sentiasa gunakan:
with slides.Presentation() as prs:
...AttributeError: __enter__
Jika anda melihat ralat ini, periksa bahawa anda telah mengimport aspose.slides_foss (bukan aspose.slides). Nama pakej di PyPI ialah aspose-slides-foss dan import masa jalan ialah aspose.slides_foss.
TypeError: SaveFormat.PPTX is not callable
SaveFormat.PPTX adalah ahli enum, bukan fungsi. Gunakan ia sebagai prs.save("file.pptx", SaveFormat.PPTX).
Soalan Lazim
Apakah saiz slaid lalai?
Satu Presentation() baru mencipta slaid pada saiz standard 10 × 7.5 inci (720 × 540 titik). Menukar saiz slaid belum disokong dalam edisi ini.
Bolehkah saya menambah lebih daripada satu slaid?
Ya. Panggil prs.slides.add_empty_slide(prs.layout_slides[0]) untuk menambah slaid kosong dan mengaksesnya mengikut indeks:
prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]Bolehkah saya membuka fail sedia ada dan menambah slaid?
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 boleh saya simpan?
Hanya SaveFormat.PPTX disokong. Eksport ke PDF, HTML, SVG, atau imej tidak tersedia dalam edisi ini.