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.FossOverte 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é.