Cara Menambah Bentuk ke PowerPoint dalam .NET

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

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


Lihat Juga

 Bahasa Melayu