چگونه اشکال را به پاورپوینت در .NET اضافه کنیم

چگونه اشکال را به پاورپوینت در .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 در این نسخه پیاده‌سازی نشده‌اند.


موارد مرتبط

 فارسی