Python'da Sunumlar Nasıl Oluşturulur
Aspose.Slides FOSS for Python, Microsoft Office’a bağımlı olmadan tamamen Python’da PowerPoint sunumları oluşturmanıza olanak tanır. Bu kılavuz, yeni bir sunum oluşturmayı, slayt ve şekiller eklemeyi, metni biçimlendirmeyi ve sonucu kaydetmeyi gösterir.
Adım Adım Kılavuz
Adım 1: Paketi Yükleyin
Aspose.Slides FOSS’ı PyPI’dan kurun. Python 3.10 veya daha yeni bir sürüm gereklidir.
pip install aspose-slides-fossKurulumu doğrulayın:
import aspose.slides_foss as slides
print("Aspose.Slides FOSS ready")lxml bağımlılığı otomatik olarak kurulur. Başka bir sistem paketi gerekmez.
Adım 2: Gerekli Modülleri İçe Aktarın
Kaydetme için gereken paketi ve SaveFormat enum’ı içe aktarın.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeTypeTüm şekil‑tipi sabitleri aspose.slides_foss.ShapeType içinde bulunur. Tüm biçimlendirme tipleri (FillType, NullableBool) ayrıca aspose.slides_foss içinde yer alır.
Adım 3: Sunum Oluştur
slides.Presentation()‘yi bağlam yöneticisi olarak kullanın. Yeni bir sunum bir boş slaytla başlar.
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)Önemli: Presentation öğesini her zaman bir with bloğu içinde açın ve kullanın. with ifadesinin dışına bir referans saklamayın; kaynaklar doğru şekilde serbest bırakılmayacaktır.
Adım 4: Bir Slayta Erişin
İlk slayt indeks 0’da bulunur. Boş bir sunum tam olarak bir slayta sahiptir.
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)Adım 5: Şekil Ekle
slide.shapes.add_auto_shape() kullanarak bir AutoShape ekleyin. Parametreler (shape_type, x, y, width, height) tümü puan cinsindendir (1 puan = 1/72 inç; standart slayt 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)Adım 6: Sunumu Kaydet
prs.save(path, SaveFormat.PPTX)‘yi with bloğu çıkmadan önce çağırın. PPTX tek desteklenen çıktı formatıdır.
prs.save("result.pptx", SaveFormat.PPTX)Dosya atomik olarak yazılır; bu çağrıdan önce bir hata oluşursa, hiçbir çıktı dosyası oluşturulmaz.
Tam Çalışan Örnek
Aşağıdaki betik, ilk slaytta bir başlık şekli ve ikinci slaytta bir tablo içeren iki slaytlık bir sunum oluşturur.
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")Yaygın Sorunlar ve Çözümler
ResourceWarning: unclosed Presentation
Presentation‘yi with bloğu olmadan örnekliyorsunuz. Her zaman kullanın:
with slides.Presentation() as prs:
...AttributeError: __enter__
Bu hatayı görürseniz, aspose.slides_foss (aspose.slides değil) ithal ettiğinizden emin olun. PyPI üzerindeki paket adı aspose-slides-foss ve çalışma zamanı ithalatı aspose.slides_foss.
TypeError: SaveFormat.PPTX is not callable
SaveFormat.PPTX bir enum üyesidir, fonksiyon değildir. prs.save("file.pptx", SaveFormat.PPTX) olarak kullanın.
Sıkça Sorulan Sorular
Varsayılan slayt boyutu nedir?
Yeni bir Presentation(), standart 10 × 7.5 inç (720 × 540 nokta) boyutunda slaytlar oluşturur. Slayt boyutunu değiştirme bu sürümde henüz desteklenmemektedir.
Birden fazla slayt ekleyebilir miyim?
Evet. Boş bir slayt eklemek ve ona indeksle erişmek için prs.slides.add_empty_slide(prs.layout_slides[0]) çağırın:
prs.slides.add_empty_slide(prs.layout_slides[0])
slide2 = prs.slides[1]Mevcut bir dosyayı açıp slayt ekleyebilir miyim?
Evet:
with slides.Presentation("existing.pptx") as prs:
prs.slides.add_empty_slide(prs.layout_slides[0])
prs.save("existing.pptx", SaveFormat.PPTX)Hangi formatlara kaydedebilirim?
Yalnızca SaveFormat.PPTX desteklenir. PDF, HTML, SVG veya görüntülere dışa aktarma bu sürümde mevcut değildir.