چگونه اشکال را به 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");مرحله ۲: ایجاد یک ارائه
همیشه از 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 شمارهگذاری میشوند: بالا=0، چپ=1، پایین=2، راست=3.
مرحله ۶: افزودن قاب تصویر
یک تصویر را جاسازی کنید و به عنوان 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 در این نسخه پیادهسازی نشدهاند.