Kako dodati oblike u PowerPoint u .NET
Aspose.Slides FOSS for .NET podržava dodavanje AutoShapes, Tables, Connectors i PictureFrames na slajdove prezentacije. Sve vrste oblika dodaju se putem kolekcije slide.Shapes.
Vodič korak po korak
Korak 1: Instalirajte paket
dotnet add package Aspose.Slides.FossProvjerite instalaciju:
using Aspose.Slides.Foss;
Console.WriteLine("Ready");Korak 2: Stvori prezentaciju
Uvijek koristite Presentation s using izjavom.
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);Korak 3: Dodaj AutoShape
slide.Shapes.AddAutoShape(shapeType, x, y, width, height) postavlja oblik na zadanu poziciju i veličinu (sve u točkama). Koristite ShapeType konstante za odabir oblika.
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);Korak 4: Dodaj tablicu
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) stvara tablicu na navedenoj poziciji. Širine stupaca i visine redaka su nizovi vrijednosti u točkama.
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);Korak 5: Dodaj konektor
Poveznice vizualno povezuju dva oblika. Prvo stvorite oblike, zatim dodajte poveznicu i postavite njene početne i krajnje točke spajanja.
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);Indeksi mjesta spajanja numerirani su od 0 do 3 za pravokutnik: vrh=0, lijevo=1, dno=2, desno=3.
Korak 6: Dodaj okvir za sliku
Umetnite sliku i dodajte je na slajd kao PictureFrame. Prvo pročitajte bajtove slike, dodajte ih u kolekciju slika prezentacije, a zatim stvorite okvir.
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);Uobičajeni problemi i rješenja
Oblik se pojavljuje izvan vidljivog područja slajda
Slajdovi su po zadanim postavkama 720 × 540 točaka. Vrijednosti x ili y izvan tih granica postavljaju oblik izvan slajda. Zadržite x < 720 i y < 540, te osigurajte x + width <= 720 i y + height <= 540.
NullReferenceException prilikom pristupa TextFrame
AddAutoShape() vraća objekt oblika izravno. Ako vidite null, provjerite da ne odbacujete povratnu vrijednost.
Tekst ćelije tablice je prazan nakon dodjele
Ispravno svojstvo je .TextFrame.Text (ne .Text izravno na ćeliji). Pristupajte ćelijama kao table.Rows[rowIndex][colIndex].TextFrame.Text = "value".
Često postavljana pitanja
Koliko oblika mogu dodati na slajd?
Ne postoji ograničenje koje nameće biblioteka. Praktična ograničenja ovise o veličini datoteke i mogućnostima prikaza vašeg odabranog PPTX preglednika.
Mogu li promijeniti položaj oblika nakon što ga dodam?
Da. Objekt oblika koji vraća AddAutoShape() ima X, Y, Width i Height svojstva koja možete postaviti:
shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;Mogu li postaviti boju obruba (konture) oblika?
Da, putem shape.LineFormat:
using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);Jesu li grafikoni podržani?
Ne. Grafikoni, SmartArt i OLE objekti nisu implementirani u ovom izdanju.