Hvordan legge til former i PowerPoint i .NET

Hvordan legge til former i PowerPoint i .NET

Aspose.Slides FOSS for .NET støtter å legge til AutoShapes, Tables, Connectors og PictureFrames i presentasjonslysbilder. Alle formtyper legges til gjennom slide.Shapes-samlingen.

Steg-for-steg guide

Steg 1: Installer pakken

dotnet add package Aspose.Slides.Foss

Bekreft installasjonen:

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

Trinn 2: Opprett en presentasjon

Bruk alltid Presentation med en using uttalelse.

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

Trinn 3: Legg til en AutoShape

slide.Shapes.AddAutoShape(shapeType, x, y, width, height) plasserer en form på den gitte posisjonen og størrelsen (alle i punkter). Bruk ShapeType‑konstanter for å velge formen.

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

Steg 4: Legg til en tabell

slide.Shapes.AddTable(x, y, columnWidths, rowHeights) oppretter en tabell på den angitte posisjonen. Kolonnebredder og radhøyder er arrays av punktverdier.

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

Steg 5: Legg til en kobling

Koblinger kobler to former visuelt. Opprett formene først, deretter legg til en kobling og angi start‑ og sluttkoblingspunktene.

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

Tilkoblingsstedindekser er nummerert 0‑3 for et rektangel: top=0, left=1, bottom=2, right=3.


Steg 6: Legg til en bilde-ramme

Bytt inn et bilde og legg det til lysbildet som en PictureFrame. Les bildebytesene først, legg dem til presentasjonens bildesamling, og opprett deretter rammen.

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

Vanlige problemer og løsninger

Formen vises utenfor det synlige lysbildeområdet

Lysbilder er som standard 720 × 540 poeng. Verdier av x eller y utenfor disse grensene plasserer formen utenfor lysbildet. Behold x < 720 og y < 540, og sørg for x + width <= 720 og y + height <= 540.

NullReferenceException ved tilgang til TextFrame

AddAutoShape() returnerer shape‑objektet direkte. Hvis du ser null, sjekk at du ikke forkaster returverdien.

Tabellcelletekst er tom etter tildeling

Den korrekte egenskapen er .TextFrame.Text (ikke .Text direkte på cellen). Få tilgang til celler som table.Rows[rowIndex][colIndex].TextFrame.Text = "value".


Ofte stilte spørsmål

Hvor mange former kan jeg legge til på et lysbilde?

Det er ingen bibliotekpålagt grense. Praktiske begrensninger avhenger av filstørrelse og gjengivelsesevnen til din mål‑PPTX‑viser.

Kan jeg endre posisjonen til en figur etter at jeg har lagt den til?

Ja. Formobjektet som returneres av AddAutoShape() har X, Y, Width og Height egenskaper som du kan sette:

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

Kan jeg sette fargen på figurens omriss (kant)?

Ja, via shape.LineFormat:

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

Er diagrammer støttet?

Nei. Diagrammer, SmartArt og OLE‑objekter er ikke implementert i denne utgaven.


Se også

 Norsk