Как да добавите форми към PowerPoint в .NET
Aspose.Slides FOSS for .NET поддържа добавянето на AutoShapes, Tables, Connectors и PictureFrames към слайдовете на презентацията. Всички типове форми се добавят чрез колекцията slide.Shapes.
Ръководство стъпка по стъпка
Стъпка 1: Инсталирайте пакета
dotnet add package Aspose.Slides.FossПроверете инсталацията:
using Aspose.Slides.Foss;
Console.WriteLine("Ready");Стъпка 2: Създаване на презентация
Винаги използвайте Presentation с using изявление.
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: Добавяне на AutoShape
slide.Shapes.AddAutoShape(shapeType, x, y, width, height) поставя форма на дадената позиция и размер (всички в точки). Използвайте константите ShapeType, за да изберете формата.
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: Добавяне на таблица
slide.Shapes.AddTable(x, y, columnWidths, rowHeights) създава таблица на указаната позиция. Ширините на колоните и височините на редовете са масиви от стойности в точки.
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: Добавете конектор
Конекторите свързват визуално две форми. Създайте формите първо, след това добавете конектор и задайте неговите начални и крайни точки на свързване.
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);Индексите на местата за свързване са номерирани от 0 до 3 за правоъгълник: горе=0, ляво=1, долу=2, дясно=3.
Стъпка 6: Добавяне на рамка за снимка
Вградете изображение и го добавете към слайда като PictureFrame. Прочетете байтовете на изображението първо, добавете ги към колекцията от изображения на презентацията, след това създайте рамката.
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);Общи проблеми и решения
Фигурата се появява извън видимата област на слайда
Слайдовете по подразбиране са 720 × 540 точки. Стойностите на x или y извън тези граници поставят формата извън слайда. Запазете x < 720 и y < 540 и се уверете, че x + width <= 720 и y + height <= 540.
NullReferenceException при достъпване TextFrame
AddAutoShape() връща обекта shape директно. Ако видите null, проверете дали не отхвърляте върнатата стойност.
Текстът в клетката на таблицата е празен след присвояване
Правилното свойство е .TextFrame.Text (не .Text директно върху клетката). Достъпвайте клетки като table.Rows[rowIndex][colIndex].TextFrame.Text = "value".
Често задавани въпроси
Колко форми мога да добавя към слайд?
Няма наложен от библиотеката лимит. Практическите ограничения зависят от размера на файла и способността за рендериране на вашия целеви PPTX прегледач.
Мога ли да променя позицията на формата след като я добавя?
Да. Обектът shape, върнат от AddAutoShape(), има X, Y, Width и Height свойства, които можете да зададете:
shape.X = 100;
shape.Y = 200;
shape.Width = 400;
shape.Height = 80;Мога ли да задавам цвета на контура (границата) на формата?
Да, чрез shape.LineFormat:
using Aspose.Slides.Foss.Drawing;
shape.LineFormat.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 200, 0, 0);Поддържат се диаграми?
Не. Диаграмите, SmartArt и OLE обектите не са реализирани в това издание.