Kako dodati oblike u PowerPoint u .NET

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

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


Vidi takođe

 Српски