Hoe Vormen toe te voegen aan PowerPoint in .NET

Hoe Vormen toe te voegen aan PowerPoint in .NET

Aspose.Slides FOSS voor .NET ondersteunt het toevoegen van AutoShapes, Tables, Connectors en PictureFrames aan presentatieslides. Alle vormtypen worden toegevoegd via de slide.Shapes-collectie.

Stapsgewijze handleiding

Stap 1: Installeer het pakket

dotnet add package Aspose.Slides.Foss

Controleer de installatie:

using Aspose.Slides.Foss;
Console.WriteLine("Ready");

Stap 2: Maak een presentatie

Gebruik altijd Presentation met een using statement.

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);

Stap 3: Voeg een AutoShape toe

slide.Shapes.AddAutoShape(shapeType, x, y, width, height) plaatst een vorm op de opgegeven positie en grootte (allemaal in punten). Gebruik ShapeType constanten om de vorm te selecteren.

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);

Stap 4: Voeg een tabel toe

slide.Shapes.AddTable(x, y, columnWidths, rowHeights) maakt een tabel op de opgegeven positie. Kolombreedtes en rijhoogtes zijn arrays van puntwaarden.

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);

Stap 5: Voeg een connector toe

Connectoren koppelen twee vormen visueel. Maak eerst de vormen, voeg vervolgens een connector toe en stel de start‑ en eindkoppelingspunten in.

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);

Connectieplaatsindices worden genummerd 0‑3 voor een rechthoek: top=0, left=1, bottom=2, right=3.


Stap 6: Voeg een fotolijst toe

Voeg een afbeelding in en voeg deze toe aan de dia als een PictureFrame. Lees eerst de afbeeldingsbytes, voeg ze toe aan de afbeeldingscollectie van de presentatie, en maak vervolgens het frame aan.

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);

Veelvoorkomende problemen en oplossingen

Vorm verschijnt buiten het zichtbare dia‑gebied

Dia’s zijn standaard 720 × 540 punten. Waarden van x of y buiten die grenzen plaatsen de vorm buiten de dia. Bewaar x < 720 en y < 540, en zorg ervoor dat x + width <= 720 en y + height <= 540.

NullReferenceException bij het openen van TextFrame

AddAutoShape() retourneert het shape-object direct. Als je null ziet, controleer dan of je de geretourneerde waarde niet weggooit.

Tabelceltekst is leeg na toewijzing

De juiste eigenschap is .TextFrame.Text (niet .Text direct op de cel). Toegang tot cellen als table.Rows[rowIndex][colIndex].TextFrame.Text = "value".


Veelgestelde vragen

Hoeveel vormen kan ik aan een dia toevoegen?

Er is geen door de bibliotheek opgelegde limiet. Praktische limieten hangen af van de bestandsgrootte en de renderingscapaciteit van uw doel‑PPTX‑viewer.

Kan ik de positie van een vorm wijzigen nadat ik deze heb toegevoegd?

Ja. Het shape-object dat wordt geretourneerd door AddAutoShape() heeft X, Y, Width en Height eigenschappen die u kunt instellen:

shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;

Kan ik de vormcontour (rand)kleur instellen?

Ja, via shape.LineFormat:

using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);

Zijn grafieken ondersteund?

Nee. Grafieken, SmartArt en OLE‑objecten zijn niet geïmplementeerd in deze editie.


Zie ook

 Nederlands