Cara Menyimpan Pembentangan dalam Python
Aspose.Slides FOSS for Python saves presentations exclusively to .pptx format menggunakan prs.save(path, SaveFormat.PPTX). Panduan ini merangkumi corak simpan yang betul, menyimpan ke laluan yang berbeza, dan ralat biasa yang berkaitan dengan penyimpanan.
Panduan Langkah demi Langkah
Langkah 1: Pasang Pakej
pip install aspose-slides-fossLangkah 2: Buka atau Cipta Persembahan
Sentiasa gunakan pengurus konteks. Panggilan simpan mesti berlaku di dalam with blok.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
# Create new
with slides.Presentation() as prs:
prs.save("new.pptx", SaveFormat.PPTX)
# Open existing
with slides.Presentation("input.pptx") as prs:
prs.save("output.pptx", SaveFormat.PPTX)Langkah 3: Simpan pada Akhir with Blok
Letakkan save() panggilan sebagai pernyataan terakhir di dalam with blok, selepas semua pengubahsuaian selesai.
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]
shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 100)
shape.add_text_frame("Hello, World!")
prs.save("output.pptx", SaveFormat.PPTX)Langkah 4: Simpan ke Laluan yang Berbeza
Berikan laluan output yang berbeza untuk mencipta fail baru tanpa mengubah yang asal:
with slides.Presentation("template.pptx") as prs:
# modify ...
prs.save("customized.pptx", SaveFormat.PPTX)Fail template.pptx fail tidak diubah; customized.pptx dicipta (atau ditulis semula jika ia sudah wujud).
Langkah 5: Sahkan Output
Selepas with blok keluar, fail selesai dan ditutup. Periksa ia wujud:
import os
from pathlib import Path
output = Path("output.pptx")
print(f"Saved: {output.exists()}, size: {output.stat().st_size} bytes")Format Simpanan yang Disokong
| Format | Nilai Enum | Disokong |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | Ya |
| N/A | Tidak | |
| HTML | N/A | Tidak |
| SVG | N/A | Tidak |
| PNG / JPEG | N/A | Tidak |
| ODP (OpenDocument) | N/A | Tidak |
Hanya PPTX yang disokong. Mencuba menyimpan dalam format lain akan menyebabkan NotImplementedError atau ralat format yang tidak disokong.
Isu Umum dan Penyelesaian
PermissionError: [Errno 13] Permission denied
Fail output dibuka dalam aplikasi lain (contoh, PowerPoint mempunyai fail tersebut terbuka). Tutup fail dalam aplikasi lain sebelum menyimpan.
Fail dicipta tetapi kelihatan kosong atau rosak
Pastikan prs.save() dipanggil di dalam with blok, bukan selepasnya. Selepas with blok berakhir, Presentation objek dibuang dan panggilan seterusnya akan gagal secara senyap atau menghasilkan ralat.
NotImplementedError semasa menyimpan
Ini berlaku apabila cuba menyimpan dalam format selain PPTX, atau apabila menggunakan ciri yang tidak disokong (seperti carta atau animasi) semasa menyimpan.
Soalan Lazim
Bolehkah saya menyimpan ke fail yang sama yang saya buka?
Ya. Menyimpan ke laluan yang sama akan menimpa fail asal:
with slides.Presentation("deck.pptx") as prs:
# modify ...
prs.save("deck.pptx", SaveFormat.PPTX) # overwrites originalBolehkah saya menyimpan ke penampan bait (bytes buffer) dan bukannya fail?
Ya. Hantar satu io.BytesIO objek secara langsung ke prs.save() — ia menerima apa-apa BinaryIO destinasi:
import io
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
buf = io.BytesIO()
with slides.Presentation() as prs:
# ... modify presentation ...
prs.save(buf, SaveFormat.PPTX)
pptx_bytes = buf.getvalue()Adakah penyimpanan mengekalkan kandungan yang tidak saya ubah?
Ya. Bahagian XML yang tidak dikenali daripada fail asal dipelihara secara tepat. Perpustakaan hanya menserialkan bahagian model dokumen yang difahaminya, dan meneruskan sebarang XML yang tidak dikenali.