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.FossVerifikasi 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.