Python içinde Sunumları Kaydetme

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

Adı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çimEnum DeğeriDestekleniyor
PPTX (Office Open XML)SaveFormat.PPTXEvet
PDFN/AHayır
HTMLN/AHayır
SVGN/AHayır
PNG / JPEGN/AHayır
ODP (OpenDocument)N/AHayı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 original

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


Ayrıca Bakınız

 Türkçe