چگونه اشکال را به پاورپوینت در .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");مرحله ۲: ایجاد یک ارائه
همیشه از 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);مرحله ۳: افزودن یک 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);مرحله ۴: افزودن جدول
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 شمارهگذاری میشوند: top=0، left=1، bottom=2، right=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() بهطور مستقیم شیء شکل را برمیگرداند. اگر 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 در این نسخه پیادهسازی نشدهاند.