Cara Menyimpan Pembentangan dalam Python

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-foss

Langkah 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

FormatNilai EnumDisokong
PPTX (Office Open XML)SaveFormat.PPTXYa
PDFN/ATidak
HTMLN/ATidak
SVGN/ATidak
PNG / JPEGN/ATidak
ODP (OpenDocument)N/ATidak

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 original

Bolehkah 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.


Lihat Juga

 Bahasa Melayu