Sådan tilføjer du former til PowerPoint i .NET
Aspose.Slides FOSS for .NET understøtter at tilføje AutoShapes, Tables, Connectors og PictureFrames til præsentationsslides. Alle shapetyper tilføjes gennem slide.Shapes-samlingen.
Trin-for-trin guide
Trin 1: Installer pakken
dotnet add package Aspose.Slides.FossBekræft installationen:
using Aspose.Slides.Foss;
Console.WriteLine("Ready");Trin 2: Opret en præsentation
Brug altid Presentation med en using udsagn.
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);Trin 3: Tilføj en AutoShape
slide.Shapes.AddAutoShape(shapeType, x, y, width, height) placerer en form på den angivne position og størrelse (alle i point). Brug ShapeType konstanter til at vælge 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);Trin 4: Tilføj en tabel
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) opretter en tabel på den angivne position. Kolonnebredder og rækkehøjder er arrays af punktværdier.
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);Trin 5: Tilføj en Connector
Forbindelser forbinder to former visuelt. Opret først formerne, tilføj derefter en forbindelse og indstil dens start- og slutforbindelsespunkter.
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);Forbindelsesstedindekser er nummereret 0‑3 for en rektangel: top=0, venstre=1, bund=2, højre=3.
Trin 6: Tilføj en billedramme
Indlejr et billede og tilføj det til sliden som en PictureFrame. Læs billedbytes først, tilføj dem til præsentationens billedsamling, og opret derefter 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);Almindelige problemer og løsninger
Formen vises uden for det synlige slide-området
Slides er som standard 720 × 540 point. Værdier af x eller y ud over disse grænser placerer formen uden for sliden. Behold x < 720 og y < 540, og sørg for x + width <= 720 og y + height <= 540.
NullReferenceException ved at få adgang til TextFrame
AddAutoShape() returnerer shape‑objektet direkte. Hvis du ser null, så tjek at du ikke kasserer returværdien.
Tabelcelletekst er tom efter tildeling
Den korrekte egenskab er .TextFrame.Text (ikke .Text direkte på cellen). Få adgang til celler som table.Rows[rowIndex][colIndex].TextFrame.Text = "value".
Ofte stillede spørgsmål
Hvor mange former kan jeg tilføje til et dias?
Der er ingen bibliotekspålagt grænse. Praktiske grænser afhænger af filstørrelsen og gengivelseskapaciteten i din mål‑PPTX‑fremviser.
Kan jeg ændre en formes position efter at have tilføjet den?
Ja. Shape‑objektet, der returneres af AddAutoShape(), har X, Y, Width og Height egenskaber, som du kan indstille:
shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;Kan jeg indstille formens omrids (kant) farve?
Ja, via shape.LineFormat:
using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);Er diagrammer understøttet?
Nej. Diagrammer, SmartArt og OLE‑objekter er ikke implementeret i denne udgave.