Cara Menambahkan Bentuk ke PowerPoint di .NET

Cara Menambahkan Bentuk ke PowerPoint di .NET

Aspose.Slides FOSS for .NET mendukung penambahan AutoShapes, Tables, Connectors, dan PictureFrames ke slide presentasi. Semua jenis bentuk ditambahkan melalui koleksi slide.Shapes.

Panduan Langkah-demi-Langkah

Langkah 1: Instal Paket

dotnet add package Aspose.Slides.Foss

Verifikasi instalasi:

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

Langkah 2: Buat Presentasi

Selalu gunakan Presentation dengan pernyataan using.

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);

Langkah 3: Tambahkan AutoShape

slide.Shapes.AddAutoShape(shapeType, x, y, width, height) menempatkan sebuah bentuk pada posisi dan ukuran yang diberikan (semua dalam poin). Gunakan konstanta ShapeType untuk memilih bentuk.

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);

Langkah 4: Tambahkan Tabel

slide.Shapes.AddTable(x, y, columnWidths, rowHeights) membuat tabel pada posisi yang ditentukan. Lebar kolom dan tinggi baris adalah array nilai poin.

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);

Langkah 5: Tambahkan Konektor

Penghubung menghubungkan dua bentuk secara visual. Buat bentuk terlebih dahulu, lalu tambahkan penghubung dan atur titik koneksi awal serta akhir.

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);

Indeks situs koneksi diberi nomor 0-3 untuk sebuah persegi panjang: atas=0, kiri=1, bawah=2, kanan=3.


Langkah 6: Tambahkan Bingkai Gambar

Sematkan gambar dan tambahkan ke slide sebagai PictureFrame. Baca byte gambar terlebih dahulu, tambahkan ke koleksi gambar presentasi, kemudian buat bingkai.

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);

Masalah Umum dan Solusi

Bentuk muncul di luar area slide yang terlihat

Slide berukuran 720 × 540 poin secara default. Nilai x atau y di luar batas tersebut menempatkan bentuk di luar slide. Pertahankan x < 720 dan y < 540, serta pastikan x + width <= 720 dan y + height <= 540.

NullReferenceException saat mengakses TextFrame

AddAutoShape() mengembalikan objek shape secara langsung. Jika Anda melihat null, periksa bahwa Anda tidak membuang nilai kembaliannya.

Teks sel tabel kosong setelah penugasan

Properti yang benar adalah .TextFrame.Text (bukan .Text langsung pada sel). Akses sel sebagai table.Rows[rowIndex][colIndex].TextFrame.Text = "value".


Pertanyaan yang Sering Diajukan

Berapa banyak bentuk yang dapat saya tambahkan ke slide?

Tidak ada batasan yang diberlakukan oleh perpustakaan. Batasan praktis tergantung pada ukuran file dan kemampuan rendering penampil PPTX target Anda.

Bisakah saya mengubah posisi shape setelah menambahkannya?

Ya. Objek shape yang dikembalikan oleh AddAutoShape() memiliki properti X, Y, Width, dan Height yang dapat Anda atur:

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

Bisakah saya mengatur warna outline (border) bentuk?

Ya, via shape.LineFormat:

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

Apakah grafik didukung?

Tidak. Diagram, SmartArt, dan objek OLE tidak diimplementasikan dalam edisi ini.


Lihat Juga

 Bahasa Indonesia