.NET'te Sunumlar Nasıl Oluşturulur

.NET'te Sunumlar Nasıl Oluşturulur

Aspose.Slides FOSS for .NET, Microsoft Office’a bağımlı olmadan tamamen C# ile 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’ı NuGet’ten yükleyin. .NET 9.0 veya daha yenisi gereklidir.

dotnet add package Aspose.Slides.Foss

Kurulumu doğrulayın:

using Aspose.Slides.Foss;

using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");

Başka bir sistem paketi gerekmez.


Adım 2: Gerekli Ad Alanlarını İçe Aktarın

Sunumları oluşturmak ve kaydetmek için gereken ad alanlarını ekleyin.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

Tü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

new Presentation() ile bir using ifadesi kullanın. Yeni bir sunum bir boş slaytla başlar.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
Console.WriteLine($"Slides in new presentation: {prs.Slides.Count}");
// work with prs
prs.Save("output.pptx", SaveFormat.Pptx);

Önemli: Her zaman Presentation ile bir using ifadesi kullanın. Sınıf IDisposable uygular ve kaynaklar onsuz 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.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];  // zero-based index
Console.WriteLine($"Slide at index 0: {slide}");
prs.Save("output.pptx", SaveFormat.Pptx);

Adım 5: Bir Şekil Ekle

slide.Shapes.AddAutoShape() kullanarak bir AutoShape ekleyin. Parametreler (shapeType, x, y, width, height) tümü puan cinsindendir (1 puan = 1/72 inç; standart slayt 720 × 540 pt).

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];

// Rectangle at (50, 50) with 400 wide and 120 tall
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 400, 120);

// Attach a text frame
shape.AddTextFrame("Hello from Aspose.Slides FOSS!");

prs.Save("with-shape.pptx", SaveFormat.Pptx);

Adım 6: Sunumu Kaydet

Nesne serbest bırakılmadan önce prs.Save(path, SaveFormat.Pptx) çağırın. PPTX yalnızca 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 program, ilk slaytta bir başlık şekli ve ikinci slaytta bir tablo içeren iki slaytlık bir sunum oluşturur.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();

// --- Slide 1: title shape ---
var slide1 = prs.Slides[0];
var title = slide1.Shapes.AddAutoShape(ShapeType.Rectangle, 40, 40, 640, 80);
var tf = title.AddTextFrame("Q1 Results: Executive Summary");
var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontHeight = 32;
fmt.FontBold = NullableBool.True;
fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 0, 70, 127);

// --- Slide 2: table ---
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];
var table = slide2.Shapes.AddTable(40, 40,
    new double[] { 200.0, 120.0, 120.0 },
    new double[] { 40.0, 40.0, 40.0 });

string[] headers = { "Region", "Revenue", "Growth" };
string[][] data = {
    new[] { "North", "$1.2M", "+8%" },
    new[] { "South", "$0.9M", "+4%" },
};

for (int col = 0; col < headers.Length; col++)
    table.Rows[0][col].TextFrame.Text = headers[col];

for (int row = 0; row < data.Length; row++)
    for (int col = 0; col < data[row].Length; col++)
        table.Rows[row + 1][col].TextFrame.Text = data[row][col];

prs.Save("q1-results.pptx", SaveFormat.Pptx);
Console.WriteLine("Saved q1-results.pptx");

Yaygın Sorunlar ve Çözümler

ObjectDisposedException

Presentation nesnesini using bloğu sona erdikten sonra kullanıyorsunuz. Tüm işlemler nesne serbest bırakılmadan önce gerçekleşmelidir.

ShapeType için eksik ad alanı hatası

Dosyanızın en üstünde using Aspose.Slides.Foss; olduğundan emin olun. ShapeType, NullableBool, FillType ve diğer enum’lar bu ad alanında bulunur.

SaveFormat hariç Pptx

Herhangi bir SaveFormat değerinin SaveFormat.Pptx dışındaki bir değerinin geçirilmesi bir istisna atmaz. format parametresi sessizce yok sayılır ve PPTX her zaman üretilir. Açık olmak için her zaman SaveFormat.Pptx kullanın.


Sıkça Sorulan Sorular

Varsayılan slayt boyutu nedir?

Yeni bir Presentation(), standart 10 x 7,5 inç (720 x 540 nokta) boyutunda slaytlar oluşturur. Bu sürümde slayt boyutunu değiştirme henüz desteklenmemektedir.

Birden fazla slayt ekleyebilir miyim?

Evet. prs.Slides.AddEmptySlide(prs.LayoutSlides[0])‘yi çağırarak boş bir slayt ekleyin ve indeksle erişin:

prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];

Mevcut bir dosyayı açıp slayt ekleyebilir miyim?

Evet:

using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[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.


Ayrıca Bakınız

 Türkçe