.NET'te PowerPoint'e Şekil Ekleme

.NET'te PowerPoint'e Şekil Ekleme

Aspose.Slides FOSS for .NET, AutoShapes, Tables, Connectors ve PictureFrames’i sunum slaytlarına eklemeyi destekler. Tüm şekil türleri slide.Shapes koleksiyonu aracılığıyla eklenir.

Adım-Adım Kılavuz

Adım 1: Paketi Yükleyin

dotnet add package Aspose.Slides.Foss

Kurulumu doğrulayın:

using Aspose.Slides.Foss;
Console.WriteLine("Ready");

Adım 2: Sunum Oluştur

Her zaman Presentation ile bir using ifadesi kullanın.

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

using var prs = new Presentation();
var slide = prs.Slides[0];
// ... add shapes ...
prs.Save("output.pptx", SaveFormat.Pptx);

Adım 3: Bir AutoShape ekleyin

slide.Shapes.AddAutoShape(shapeType, x, y, width, height), verilen konumda ve boyutta (tümü puan cinsinden) bir şekil yerleştirir. Şekli seçmek için ShapeType sabitlerini kullanın.

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

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

// Rectangle
var rect = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 300, 100);
rect.AddTextFrame("Rectangle shape");

// Ellipse
var ellipse = slide.Shapes.AddAutoShape(ShapeType.Ellipse, 400, 50, 200, 100);
ellipse.AddTextFrame("Ellipse shape");

prs.Save("autoshapes.pptx", SaveFormat.Pptx);

Adım 4: Bir Tablo Ekle

slide.Shapes.AddTable(x, y, columnWidths, rowHeights) belirtilen konumda bir tablo oluşturur. Sütun genişlikleri ve satır yükseklikleri nokta değerlerinden oluşan dizilerdir.

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

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

var colWidths = new double[] { 150.0, 150.0, 150.0 };
var rowHeights = new double[] { 40.0, 40.0, 40.0 };
var table = slide.Shapes.AddTable(50, 200, colWidths, rowHeights);

// Set header row text
string[] headers = { "Product", "Units", "Revenue" };
for (int col = 0; col < headers.Length; col++)
    table.Rows[0][col].TextFrame.Text = headers[col];

// Set data rows
string[][] rows = {
    new[] { "Widget A", "120", "$2,400" },
    new[] { "Widget B", "85", "$1,700" },
};
for (int rowIdx = 0; rowIdx < rows.Length; rowIdx++)
    for (int col = 0; col < rows[rowIdx].Length; col++)
        table.Rows[rowIdx + 1][col].TextFrame.Text = rows[rowIdx][col];

prs.Save("table.pptx", SaveFormat.Pptx);

Adım 5: Bağlayıcı Ekle

Bağlayıcılar iki şekli görsel olarak bağlar. Şekilleri önce oluşturun, ardından bir bağlayıcı ekleyin ve başlangıç ve bitiş bağlantı noktalarını ayarlayın.

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

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

var box1 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 100, 150, 60);
box1.AddTextFrame("Start");

var box2 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 350, 100, 150, 60);
box2.AddTextFrame("End");

var conn = slide.Shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);
conn.StartShapeConnectedTo = box1;
conn.StartShapeConnectionSiteIndex = 3;  // right side of box1
conn.EndShapeConnectedTo = box2;
conn.EndShapeConnectionSiteIndex = 1;    // left side of box2

prs.Save("connector.pptx", SaveFormat.Pptx);

Bağlantı noktası indeksleri bir dikdörtgen için 0‑3 olarak numaralandırılır: üst=0, sol=1, alt=2, sağ=3.


Adım 6: Bir Resim Çerçevesi Ekle

Bir resmi gömün ve slayta PictureFrame olarak ekleyin. Önce resim baytlarını okuyun, bunları sunumun resim koleksiyonuna ekleyin, ardından çerçeveyi oluşturun.

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

using var prs = new Presentation();
byte[] imageData = File.ReadAllBytes("logo.png");
var image = prs.Images.AddImage(imageData);

var slide = prs.Slides[0];
slide.Shapes.AddPictureFrame(
    ShapeType.Rectangle,  // bounding shape type
    50, 50,               // x, y in points
    200, 150,             // width, height in points
    image
);

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

Yaygın Sorunlar ve Çözümler

Şekil görünür slayt alanının dışında görünüyor

Slaytlar varsayılan olarak 720 × 540 puandır. x veya y değerleri bu sınırların dışına çıktığında şekil slayt dışına yerleştirilir. x < 720 ve y < 540 tutun ve x + width <= 720 ve y + height <= 540‘i sağlayın.

NullReferenceException erişirken TextFrame

AddAutoShape() şekil nesnesini doğrudan döndürür. null görürseniz, dönüş değerini atmadığınızdan emin olun.

Tablo hücresi metni atamadan sonra boş

Doğru özellik .TextFrame.Text (hücrede doğrudan .Text değil). Hücrelere table.Rows[rowIndex][colIndex].TextFrame.Text = "value" olarak erişin.


Sıkça Sorulan Sorular

Bir slayta kaç şekil ekleyebilirim?

Kütüphane tarafından uygulanan bir sınırlama yoktur. Pratik sınırlamalar, dosya boyutuna ve hedef PPTX görüntüleyicinizin renderleme yeteneğine bağlıdır.

Bir şeklin konumunu ekledikten sonra değiştirebilir miyim?

Evet. AddAutoShape() tarafından döndürülen şekil nesnesi, ayarlayabileceğiniz X, Y, Width ve Height özelliklerine sahiptir:

shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;

Şekil anahat (kenarlık) rengini ayarlayabilir miyim?

Evet, shape.LineFormat aracılığıyla:

using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);

Grafikler destekleniyor mu?

Hayır. Çizelgeler, SmartArt ve OLE nesneleri bu sürümde uygulanmamıştır.


Ayrıca bakınız

 Türkçe