Kuinka lisätä muotoja PowerPointiin .NET:ssä

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

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


Katso myös

 Suomi