Hogyan adjunk hozzá alakzatokat a PowerPoint-hoz .NET-ben
Aspose.Slides FOSS for .NET támogatja az AutoShapes, Tables, Connectors és PictureFrames hozzáadását a bemutató diákhoz. Minden alakzat típust a slide.Shapes gyűjteményen keresztül adhatunk hozzá.
Lépésről‑lépésre útmutató
1. lépés: A csomag telepítése
dotnet add package Aspose.Slides.FossEllenőrizze a telepítést:
using Aspose.Slides.Foss;
Console.WriteLine("Ready");2. lépés: Prezentáció létrehozása
Mindig használja a Presentation-t egy using nyilatkozattal.
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);3. lépés: AutoShape hozzáadása
slide.Shapes.AddAutoShape(shapeType, x, y, width, height) elhelyez egy alakzatot a megadott pozícióban és méretben (mind pontban). Használja a ShapeType állandókat az alakzat kiválasztásához.
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);4. lépés: Táblázat hozzáadása
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) táblát hoz létre a megadott pozíción. Az oszlopszélességek és sormagasságok pontértékek tömbjei.
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);5. lépés: Csatoló hozzáadása
A csatlakozók vizuálisan összekapcsolják a két alakzatot. Először hozza létre az alakzatokat, majd adjon hozzá egy csatlakozót, és állítsa be a kezdő- és végkapcsolási pontokat.
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);A csatlakozási helyek indexei 0‑3‑ig vannak számozva egy téglalap esetén: felső=0, bal=1, alsó=2, jobb=3.
6. lépés: Képkeret hozzáadása
Ágyazz be egy képet, és add hozzá a diához PictureFrame. Olvasd be először a kép bájtjait, add hozzá a prezentáció képgyűjteményéhez, majd hozd létre a keretet.
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);Gyakori problémák és megoldások
Alakzat a látható diaterületen kívül jelenik meg
A diák alapértelmezés szerint 720 × 540 pont méretűek. A x vagy y értékek ezen határokon kívül a formát a diáról kívülre helyezik. Tartsa meg a x < 720 és y < 540 értékeket, és biztosítsa a x + width <= 720 és y + height <= 540 értékeket.
NullReferenceException hozzáféréskor TextFrame
AddAutoShape() közvetlenül visszaadja a shape objektumot. Ha null-t látod, ellenőrizd, hogy nem dobod‑e el a visszatérési értéket.
A táblázatcellában a szöveg üres a hozzárendelés után
A helyes tulajdonság .TextFrame.Text (nem .Text közvetlenül a cellán). A cellák elérése: table.Rows[rowIndex][colIndex].TextFrame.Text = "value".
Gyakran Ismételt Kérdések
Hány alakzatot adhatok hozzá egy diára?
Nincs a könyvtár által előírt korlát. A gyakorlati korlátok a fájlmérettől és a cél PPTX megjelenítő képességétől függenek.
Módosíthatom egy alakzat pozícióját a hozzáadása után?
Igen. A AddAutoShape() által visszaadott shape objektumnak vannak X, Y, Width és Height tulajdonságai, amelyeket beállíthat:
shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;Beállíthatom a forma körvonalának (szegélyének) színét?
Igen, a shape.LineFormat-on keresztül:
using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);Támogatottak a diagramok?
Nem. Diagramok, SmartArt és OLE objektumok nincsenek megvalósítva ebben a kiadásban.