.NET içinde Sunum Oluşturma
Aspose.Slides FOSS for .NET lets you create PowerPoint presentations entirely in C# with no dependency on Microsoft Office. This guide shows how to create a new presentation, add slides and shapes, format text, and save the result.
Adım Adım Kılavuz
Adım 1: Paketi Yükleyin
Aspose.Slides FOSS’u NuGet üzerinden kurun. .NET 9.0 veya daha yeni bir sürüm gereklidir.
dotnet add package Aspose.Slides.FossKurulumu doğrulayın:
using Aspose.Slides.Foss;
using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");Başka hiçbir sistem paketi gerekmemektedir.
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 şurada bulunur Aspose.Slides.Foss.ShapeType. Tüm biçimlendirme tipleri (FillType, NullableBool) da şundadır Aspose.Slides.Foss.
Adım 3: Bir Sunum Oluşturun
Kullan new Presentation() ile bir using ifadesi. 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 kullan Presentation ile bir using ifadesi. Sınıf şunu uygular IDisposable ve kaynaklar onsuz doğru bir ş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 Ekleyin
Kullan slide.Shapes.AddAutoShape() bir AutoShape eklemek için. Parametreler şunlardır (shapeType, x, y, width, height) tümü puan cinsindendir (1 puan = 1/72 inç; standart slayt 720 x 540 pt’dir).
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 Kaydedin
Çağır prs.Save(path, SaveFormat.Pptx) nesne serbest bırakılmadan önce. 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 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
Şu anda bunu kullanıyorsunuz Presentation nesne sonra using blok sona erdi. Tüm işlemler nesne serbest bırakılmadan önce gerçekleşmelidir.
Şu için eksik ad alanı hatası ShapeType
Sahip olduğunuzdan emin olun using Aspose.Slides.Foss; dosyanızın en üstünde. ShapeType, NullableBool, FillType, ve diğer enum’lar bu ad alanında bulunur.
SaveFormat dışında Pptx
Herhangi birini iletmek SaveFormat değeri dışında SaveFormat.Pptx bir istisna fırlatmaz. Format parametresi sessizce yok sayılır ve her zaman PPTX üretilir. Her zaman kullanın SaveFormat.Pptx açık olmak için.
Sık 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 desteklenmiyor.
Birden fazla slayt ekleyebilir miyim?
Evet. Çağırın prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) boş bir slayt eklemek ve ona indeksle erişmek için:
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];Varolan 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 formatlarda kaydedebilirim?
Yalnızca SaveFormat.Pptx desteklenir. PDF, HTML, SVG veya görüntülere dışa aktarma bu sürümde mevcut değildir.