Ako pridať tvary do PowerPointu v .NET

Ako pridať tvary do PowerPointu v .NET

Aspose.Slides FOSS pre .NET podporuje pridávanie AutoShapes, Tables, Connectors a PictureFrames do snímok prezentácie. Všetky typy tvarov sa pridávajú prostredníctvom kolekcie slide.Shapes.

Príručka krok za krokom

Krok 1: Nainštalovať balík

dotnet add package Aspose.Slides.Foss

Overte inštaláciu:

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

Krok 2: Vytvoriť prezentáciu

Vždy používajte Presentation s using vyhlásením.

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

Krok 3: Pridať AutoShape

slide.Shapes.AddAutoShape(shapeType, x, y, width, height) umiestni tvar na zadanú pozíciu a veľkosť (všetko v bodoch). Použite konštanty ShapeType na výber tvaru.

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

Krok 4: Pridať tabuľku

slide.Shapes.AddTable(x, y, columnWidths, rowHeights) vytvára tabuľku na určenom mieste. Šírky stĺpcov a výšky riadkov sú polia hodnôt v bodoch.

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

Krok 5: Pridať konektor

Konektory vizuálne spájajú dva tvary. Najprv vytvorte tvary, potom pridajte konektor a nastavte jeho počiatočné a koncové body pripojenia.

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

Indexy miest pripojenia sú očíslované 0-3 pre obdĺžnik: top=0, left=1, bottom=2, right=3.


Krok 6: Pridať rámik obrázka

Vložte obrázok a pridajte ho do snímky ako PictureFrame. Najprv prečítajte bajty obrázka, pridajte ich do kolekcie obrázkov prezentácie, potom vytvorte rámec.

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

Bežné problémy a riešenia

Tvar sa objavuje mimo viditeľnej oblasti snímky

Snímky majú predvolene rozmery 720 × 540 bodov. Hodnoty x alebo y mimo týchto hraníc umiestnia tvar mimo snímky. Zachovajte x < 720 a y < 540 a zabezpečte x + width <= 720 a y + height <= 540.

NullReferenceException pri prístupe k TextFrame

AddAutoShape() vracia objekt tvaru priamo. Ak vidíte null, skontrolujte, že neodstraňujete návratovú hodnotu.

Text bunky tabuľky je po priradení prázdny

Správna vlastnosť je .TextFrame.Text (nie .Text priamo na bunke). Prístup k bunkám ako table.Rows[rowIndex][colIndex].TextFrame.Text = "value".


Často kladené otázky

Koľko tvarov môžem pridať na snímku?

Neexistuje žiadny limit uložený knižnicou. Praktické limity závisia od veľkosti súboru a schopnosti vykresľovania cieľového prehliadača PPTX.

Môžem zmeniť pozíciu tvaru po jeho pridávaní?

Áno. Objekt tvaru vrátený pomocou AddAutoShape() má vlastnosti X, Y, Width a Height, ktoré môžete nastaviť:

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

Môžem nastaviť farbu obrysu (okraj) tvaru?

Áno, cez shape.LineFormat:

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

Sú grafy podporované?

Nie. Grafy, SmartArt a OLE objekty nie sú v tejto edícii implementované.


Pozri tiež

 Slovenčina