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 dodaju se putem kolekcije slide.Shapes.

Vodič korak po korak

Korak 1: Instalirajte paket

dotnet add package Aspose.Slides.Foss

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


Vidi također

 Hrvatski