كيفية إضافة أشكال إلى PowerPoint في .NET
Aspose.Slides FOSS for .NET supports adding AutoShapes, Tables, Connectors, and PictureFrames to presentation slides. All shape types are added through the slide.Shapes جمعية .
خطوة بخطوة دليل
الخطوة 1: قم بتثبيت الحزمة
aspose-slides-foss/slides is not yet published — build from source until it ships. See the project README for build instructions.
تحقق من التثبيت :
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);الخطوة 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);الخطوة الخامسة: إضافة جهاز اتصال
يربط الاتصالات شكلين بصريًا.إنشاء الأشكال أولاً، ثم إضافة اتصال وتعيين نقاط البداية والنهاية للاتصال.
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() إعادة تشكيل الكائن مباشرة.إذا رأيت null,تأكد من عدم إلغاء قيمة العائد.
نص الخلية في الجدول فارغ بعد التعيين
الممتلكات الصحيحة هي .TextFrame.Text ( لا ) .Text في الخلية (الخلايا التي تصل إلى الخلا table.Rows[rowIndex][colIndex].TextFrame.Text = "value".
الأسئلة المتكررة
كم عدد الأشكال التي يمكنني إضافةها إلى الشرائح؟?
لا يوجد حد مكتبي يفرضه الحد العملي يعتمد على حجم الملف والقدرة على العرض لمشاهدة PPTX المستهدفة.
هل يمكنني تغيير وضع الشكل بعد إضافته؟?
نعم.الشكل العودة عن طريق 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 الكائنات في هذا الإصدار.