Cara Menambah Bentuk ke PowerPoint dalam .NET
Aspose.Slides FOSS for .NET menyokong penambahan AutoShapes, Tables, Connectors, dan PictureFrames ke slaid persembahan. Semua jenis bentuk ditambah melalui koleksi slide.Shapes.
Panduan Langkah demi Langkah
Langkah 1: Pasang Pakej
dotnet add package Aspose.Slides.FossSahkan pemasangan:
using Aspose.Slides.Foss;
Console.WriteLine("Ready");Langkah 2: Buat Persembahan
Sentiasa 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: Tambah AutoShape
slide.Shapes.AddAutoShape(shapeType, x, y, width, height) meletakkan bentuk pada kedudukan dan saiz yang diberikan (semua dalam mata). Gunakan pemalar 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: Tambah Jadual
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) membuat jadual pada kedudukan yang ditentukan. Lebar lajur dan tinggi baris adalah tatasusunan nilai titik.
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: Tambah Penyambung
Penyambung menghubungkan dua bentuk secara visual. Buat bentuk terlebih dahulu, kemudian tambahkan penyambung dan tetapkan titik sambungan permulaan dan 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 tapak sambungan dinomborkan 0‑3 untuk segi empat tepat: atas=0, kiri=1, bawah=2, kanan=3.
Langkah 6: Tambah Bingkai Gambar
Benamkan imej dan tambahkan ke slaid sebagai PictureFrame. Baca bait imej terlebih dahulu, tambahkan ke koleksi imej persembahan, kemudian cipta 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);Isu Umum dan Penyelesaian
Bentuk muncul di luar kawasan slaid yang dapat dilihat
Slaid berukuran 720 × 540 titik secara lalai. Nilai x atau y yang melebihi sempadan tersebut akan menempatkan bentuk di luar slaid. Kekalkan x < 720 dan y < 540, serta pastikan x + width <= 720 dan y + height <= 540.
NullReferenceException apabila mengakses TextFrame
AddAutoShape() mengembalikan objek bentuk secara langsung. Jika anda melihat null, periksa bahawa anda tidak membuang nilai kembali.
Teks sel jadual kosong selepas penugasan
Sifat yang betul ialah .TextFrame.Text (bukan .Text secara langsung pada sel). Akses sel sebagai table.Rows[rowIndex][colIndex].TextFrame.Text = "value".
Soalan Lazim
Berapa banyak bentuk yang boleh saya tambahkan ke slaid?
Tiada had yang dikenakan oleh perpustakaan. Had praktikal bergantung pada saiz fail dan keupayaan rendering penonton PPTX sasaran anda.
Bolehkah saya mengubah kedudukan bentuk selepas menambahnya?
Ya. Objek shape yang dikembalikan oleh AddAutoShape() mempunyai sifat X, Y, Width, dan Height yang boleh anda tetapkan:
shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;Bolehkah saya menetapkan warna garisan luar bentuk (sempadan)?
Ya, melalui shape.LineFormat:
using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);Adakah carta disokong?
Tidak. Carta, SmartArt, dan objek OLE tidak dilaksanakan dalam edisi ini.