Python içinde Sunumları Kaydetme
Aspose.Slides FOSS for Python saves presentations exclusively to .pptx kullanarak format prs.save(path, SaveFormat.PPTX). Bu kılavuz doğru kaydetme desenini, farklı bir yola kaydetmeyi ve yaygın kaydetme ile ilgili hataları kapsar.
Adım Adım Kılavuz
Adım 1: Paketi Yükleyin
pip install aspose-slides-fossAdım 2: Bir Sunum Açın veya Oluşturun
Her zaman bağlam yöneticisini kullanın. Kaydetme çağrısı içinde gerçekleşmelidir 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)Adım 3: Sonunda kaydet with Blok
Yerleştir save() çağrıyı içinde son ifade olarak with blok, tüm değişiklikler tamamlandıktan sonra.
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)Adım 4: Farklı Bir Yola Kaydedin
Orijinali değiştirmeden yeni bir dosya oluşturmak için farklı bir çıktı yolu verin:
with slides.Presentation("template.pptx") as prs:
# modify ...
prs.save("customized.pptx", SaveFormat.PPTX)Bu template.pptx dosya değiştirilmedi; customized.pptx oluşturulur (veya zaten varsa üzerine yazılır).
Adım 5: Çıktıyı Doğrulayın
Sonrasında with blok çıkışında, dosya tamamlanır ve kapanır. Var olduğunu kontrol edin:
import os
from pathlib import Path
output = Path("output.pptx")
print(f"Saved: {output.exists()}, size: {output.stat().st_size} bytes")Desteklenen Kaydetme Formatı
| Biçim | Enum Değeri | Destekleniyor |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | Evet |
| N/A | Hayır | |
| HTML | N/A | Hayır |
| SVG | N/A | Hayır |
| PNG / JPEG | N/A | Hayır |
| ODP (OpenDocument) | N/A | Hayır |
Yalnızca PPTX desteklenir. Başka bir formatta kaydetmeye çalışmak tetikler NotImplementedError veya desteklenmeyen bir format hatası.
Yaygın Sorunlar ve Çözümler
PermissionError: [Errno 13] Permission denied
Çıktı dosyası başka bir uygulamada açık (ör. PowerPoint dosyayı açmış). Kaydetmeden önce dosyayı diğer uygulamalarda kapatın.
Dosya oluşturuldu ancak boş ya da bozuk görünüyor
Emin olun prs.save() içinde çağrılır with blok, sonrasında değil. Sonra with blok çıktığında, Presentation nesne serbest bırakılır ve sonraki çağrılar sessizce başarısız olur ya da bir hata fırlatır.
NotImplementedError kaydederken
Bu, PPTX dışındaki bir kaydetme formatı denendiğinde veya kaydetme sırasında desteklenmeyen bir özellik (örneğin grafikler veya animasyonlar) kullanıldığında meydana gelir.
Sık Sorulan Sorular
Açtığım aynı dosyaya kaydedebilir miyim?
Evet. Aynı yola kaydetmek, orijinal dosyanın üzerine yazar:
with slides.Presentation("deck.pptx") as prs:
# modify ...
prs.save("deck.pptx", SaveFormat.PPTX) # overwrites originalBir dosya yerine bir bayt tamponuna kaydedebilir miyim?
Evet. Bir io.BytesIO nesneyi doğrudan prs.save() — herhangi birini kabul eder BinaryIO hedef:
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()Kaydetme, değiştirmediğim içeriği korur mu?
Evet. Orijinal dosyadan gelen bilinmeyen XML bölümleri olduğu gibi korunur. Kütüphane yalnızca anladığı belge modelinin bölümlerini serileştirir ve tanımadığı XML’i olduğu gibi geçirir.