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 se dodaju kroz kolekciju slide.Shapes.
Vodič korak po korak
Korak 1: Instalirajte paket
dotnet add package Aspose.Slides.FossProverite instalaciju:
using Aspose.Slides.Foss;
Console.WriteLine("Ready");Korak 2: Kreirajte prezentaciju
Uvek koristite Presentation sa 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: Dodajte AutoShape
slide.Shapes.AddAutoShape(shapeType, x, y, width, height) postavlja oblik na zadatu poziciju i veličinu (sve u tačkama). Koristite ShapeType konstante za izbor 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: Dodajte tabelu
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) kreira tabelu na navedenoj poziciji. Širine kolona i visine redova su nizovi vrednosti u tač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: Dodajte konektor
Konektori vizuelno povezuju dva oblika. Prvo kreirajte oblike, zatim dodajte konektor i postavite njegove početne i krajnje tačke povezivanja.
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 tačaka povezivanja su numerisani od 0 do 3 za pravougaonik: top=0, left=1, bottom=2, right=3.
Korak 6: Dodajte okvir za sliku
Ubacite sliku i dodajte je na slajd kao PictureFrame. Prvo pročitajte bajtove slike, dodajte ih u kolekciju slika prezentacije, zatim kreirajte 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);Уобичајени проблеми и решења
Oblik se pojavljuje izvan vidljivog područja slajda
Slajdovi su po podrazumevanoj vrednosti 720 x 540 poena. Vrednosti x ili y izvan tih granica postavljaju oblik van slajda. Zadržite x < 720 i y < 540, i osigurajte x + width <= 720 i y + height <= 540.
NullReferenceException при приступању TextFrame
AddAutoShape() vraća objekat oblika direktno. Ako vidite null, proverite da li ne odbacujete vraćenu vrednost.
Tekst ćelije tabele je prazan nakon dodele
Ispravno svojstvo je .TextFrame.Text (ne .Text direktno na ćeliji). Pristupajte ćelijama kao table.Rows[rowIndex][colIndex].TextFrame.Text = "value".
Često postavljana pitanja
Koliko oblika mogu da dodam na slajd?
Ne postoji ograničenje nametnuto od strane biblioteke. Praktična ograničenja zavise od veličine fajla i sposobnosti renderovanja vašeg ciljnog PPTX pregledača.
Mogu li promeniti položaj oblika nakon što ga dodam?
Да. Објекат облика који се враћа из AddAutoShape() има X, Y, Width и Height својства која можете поставити:
shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;Mogu li postaviti boju konture (ivice) oblika?
Da, putem shape.LineFormat:
using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);Da li su grafikoni podržani?
Ne. Grafikoni, SmartArt i OLE objekti nisu implementirani u ovoj ediciji.