Kuinka lisätä muotoja PowerPointiin .NET:ssä
Aspose.Slides FOSS for .NET tukee AutoShapes-, Tables-, Connectors- ja PictureFrames-objektien lisäämistä esitysdioihin. Kaikki shape-tyypit lisätään slide.Shapes-kokoelman kautta.
Vaiheittainen opas
Vaihe 1: Asenna paketti
dotnet add package Aspose.Slides.FossVahvista asennus:
using Aspose.Slides.Foss;
Console.WriteLine("Ready");Vaihe 2: Luo esitys
Käytä aina Presentation using-lausekkeen kanssa.
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);Vaihe 3: Lisää AutoShape
slide.Shapes.AddAutoShape(shapeType, x, y, width, height) sijoittaa muodon annettuun sijaintiin ja kokoon (kaikki pisteinä). Käytä ShapeType vakioita muodon valitsemiseen.
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);Vaihe 4: Lisää taulukko
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) luo taulukon määritettyyn sijaintiin. Sarakkeiden leveydet ja rivien korkeudet ovat pistearvojen taulukoita.
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);Vaihe 5: Lisää liitin
Liittimet yhdistävät kaksi muotoa visuaalisesti. Luo muodot ensin, sitten lisää liitin ja aseta sen aloitus‑ ja lopetuspisteet.
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);Yhteyspisteiden indeksit on numeroitu 0‑3 suorakulmiolle: ylä=0, vasen=1, ala=2, oikea=3.
Vaihe 6: Lisää kuvan kehys
Upota kuva ja lisää se diaan PictureFrame. Lue kuvan tavut ensin, lisää ne esityksen kuvakokoelmaan ja luo sitten kehys.
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);Yleisiä ongelmia ja korjauksia
Muoto näkyy näkyvän dian alueen ulkopuolella
Diat ovat oletuksena 720 × 540 pistettä. x- tai y-arvot, jotka ylittävät nämä rajat, asettavat muodon dian ulkopuolelle. Säilytä x < 720 ja y < 540, ja varmista x + width <= 720 ja y + height <= 540.
NullReferenceException kun käytetään TextFrame
AddAutoShape() palauttaa shape-objektin suoraan. Jos näet null, tarkista ettet hylkää palautusarvoa.
Taulukon solun teksti on tyhjä määrittämisen jälkeen
Oikea ominaisuus on .TextFrame.Text (ei .Text suoraan solussa). Käytä soluja muodossa table.Rows[rowIndex][colIndex].TextFrame.Text = "value".
Usein kysytyt kysymykset
Kuinka monta muotoa voin lisätä diaan?
Kirjaston asettamaa rajoitusta ei ole. Käytännön rajoitukset riippuvat tiedoston koosta ja kohde‑PPTX‑katselimen renderöintikyvystä.
Voinko muuttaa muodon sijaintia sen lisäämisen jälkeen?
Kyllä. AddAutoShape()-funktion palauttavalla shape-objektilla on X, Y, Width ja Height ominaisuudet, joita voit asettaa:
shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;Voinko asettaa muodon ääriviivan (reunan) värin?
Kyllä, via shape.LineFormat:
using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);Tukeeko kaavioita?
Ei. Kaaviot, SmartArt ja OLE-objektit eivät ole toteutettu tässä versiossa.