المقدمة
توفر Aspose.Slides FOSS for .NET مجموعة شاملة من الفئات لإدارة عروض PowerPoint بالكامل بلغة C#. تتيح المكتبة لك إنشاء ملفات .pptx جديدة من الصفر، تحميل الملفات الموجودة، تعديل الشرائح والأشكال، وحفظ النتيجة مرة أخرى على القرص — كل ذلك دون تثبيت Microsoft Office أو أي تبعية خارجية.
حزمة NuGet Aspose.Slides.Foss تستهدف .NET 9.0 وتعمل بشكل متماثل على Windows و macOS و Linux وحاويات Docker. تم إصدارها تحت رخصة MIT، لذا يمكنك استخدامها في المشاريع التجارية ومشاريع المصدر المفتوح دون أي قيود.
تستعرض هذه المشاركة القدرات الأساسية لإدارة العروض التقديمية: العمل مع الشرائح، بناء هياكل الأشكال، تنظيم النص، إدارة الجداول، وحفظها بصيغة PPTX.
ما هو المشمول
إنشاء وتحميل العروض التقديمية
فئة Presentation هي نقطة الدخول لكل عملية. يمكنك إنشاء عرض تقديمي فارغ، أو تحميل واحد من مسار ملف، أو القراءة من تدفق. الفئة تنفّذ IDisposable، لذا فإن تغليفها في عبارة using يضمن تحرير الموارد بشكل صحيح.
// Create a brand-new, empty presentation
using var pres = new Presentation();
// Load an existing file
using var existing = new Presentation("report.pptx");
كائن Presentation يعرض التسلسل الهرمي الكامل للشرائح من خلال خصائص مثل Slides، Masters، LayoutSlides، Sections، CommentAuthors، Images، وNotesSize.
العمل مع الشرائح
يدعم SlideCollection الذي تم إرجاعه بواسطة Presentation.Slides إضافة، استنساخ، إدراج، إعادة ترتيب، وإزالة الشرائح. يمكنك استنساخ شريحة داخل نفس العرض التقديمي أو عبر عروض تقديمية متعددة مع الحفاظ على التخطيطات أو إعادة تعيينها.
using var pres = new Presentation();
// The default presentation contains one blank slide
var firstSlide = pres.Slides[0];
// Clone the first slide and append it
pres.Slides.AddClone(firstSlide);
// Insert a clone at a specific position
pres.Slides.InsertClone(1, firstSlide);
// Remove a slide by index
pres.Slides.RemoveAt(2);
// Total slide count
int count = pres.Slides.Count;
كل Slide يكشف عن SlideNumber، Hidden، LayoutSlide، NotesSlideManager، وName. يمكنك تكرار المجموعة باستخدام foreach أو تحويلها إلى مصفوفة باستخدام ToArray().
الأشكال وAutoShapes
كل شريحة تحتوي على ShapeCollection يمكن الوصول إليه عبر Slide.Shapes. توفر المجموعة طرقًا مصنعية لأكثر أنواع الأشكال شيوعًا.
using var pres = new Presentation();
var slide = pres.Slides[0];
// Add a rectangle AutoShape
var rect = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 50, 300, 150);
// Add a connector
var connector = slide.Shapes.AddConnector(
ShapeType.BentConnector3, 100, 200, 200, 50);
// Reorder a shape to bring it forward
slide.Shapes.Reorder(0, rect);
// Remove all shapes
slide.Shapes.Clear();
تقبل طريقتا AddAutoShape وInsertAutoShape قيمة تعداد ShapeType بالإضافة إلى إحداثيات الموقع والحجم. تتبع AddConnector وInsertConnector وAddPictureFrame وInsertPictureFrame النمط نفسه.
النص: الفقرات والأقسام
النص في عرض تقديمي يعيش داخل TextFrame، والذي يحتوي على ParagraphCollection. كل Paragraph يحمل PortionCollection من كائنات Portion تمثل تشغيلات نصية فردية بتنسيق مستقل.
using var pres = new Presentation();
var slide = pres.Slides[0];
var shape = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 50, 400, 200);
// Access the shape's text frame
var tf = shape.TextFrame;
// Read or set the full text
tf.Text = "Hello, presentation world!";
// Work with individual paragraphs and portions
var para = new Paragraph();
var portion = new Portion("Formatted run");
para.Portions.Add(portion);
tf.Paragraphs.Add(para);
كل Portion يحتوي على خاصية PortionFormat للتحكم في الخط، الحجم، الغامق/المائل، اللون، التسطير، وغيرها من سمات مستوى الحرف. ParagraphFormat يتحكم في المحاذاة، نمط الرصاص، التباعد، والمسافة البادئة.
الجداول
يتم إضافة الجداول عبر ShapeCollection.AddTable، الذي يقبل عرض الأعمدة وارتفاعات الصفوف كمصفوفات. يوفر الكائن Table المعاد الوصول إلى Rows، Columns، وكائنات Cell الفردية.
using var pres = new Presentation();
var slide = pres.Slides[0];
double[] colWidths = { 150, 150, 150 };
double[] rowHeights = { 40, 40, 40 };
var table = slide.Shapes.AddTable(
50, 50, colWidths, rowHeights);
// Set text in a cell
table.Rows[0][0].TextFrame.Text = "Header 1";
table.Rows[0][1].TextFrame.Text = "Header 2";
table.Rows[0][2].TextFrame.Text = "Header 3";
// Merge cells
table.MergeCells(table.Rows[1][0], table.Rows[1][2], false);
// Style presets
table.StylePreset = TableStylePreset.MediumStyle2Accent1;
حفظ العروض التقديمية
طريقة Presentation.Save تكتب المستند إلى ملف أو تدفق. تعداد SaveFormat يحدد تنسيق الإخراج. PPTX هو تنسيق الإخراج الأساسي المدعوم.
using var pres = new Presentation();
// ... build slides ...
// Save to a file
pres.Save("output.pptx", SaveFormat.Pptx);
// Save to a stream
using var ms = new MemoryStream();
pres.Save(ms, SaveFormat.Pptx);
// Save specific slides by index
pres.Save("subset.pptx", new[] { 1, 3 }, SaveFormat.Pptx);
يمكنك أيضًا تمرير كائن SaveOptions للتحكم الإضافي في الإخراج.
البدء السريع
ثبّت الحزمة عبر .NET CLI:
dotnet add package aspose.slides.foss
ثم أنشئ واحفظ عرضًا تقديميًا بسيطًا:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
// 1. Create a new presentation
using var pres = new Presentation();
// 2. Get the default slide
var slide = pres.Slides[0];
// 3. Add a title shape
var title = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 30, 600, 60);
title.TextFrame.Text = "Quarterly Report";
// 4. Add a content shape
var body = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 120, 600, 300);
var para = new Paragraph();
para.Portions.Add(new Portion("Revenue grew 12% year-over-year."));
body.TextFrame.Paragraphs.Add(para);
// 5. Save as PPTX
pres.Save("quarterly-report.pptx", SaveFormat.Pptx);
الصيغ المدعومة
| Format | Extension | Read | Write |
|---|---|---|---|
| PPTX | .pptx | نعم | نعم |
| PPSX | .ppsx | لا | نعم |
| PPTM | .pptm | لا | نعم |
| POTX | .potx | لا | نعم |
| ODP | .odp | لا | نعم |
| FODP | .fodp | لا | نعم |
ملاحظة: المكتبة تقرأ وتكتب PPTX بشكل أصلي. الصيغ الأخرى المذكورة في تعداد
SaveFormatمُعلنة على مستوى API؛ قد تختلف دقة التصدير الفعلية. صيغة.pptالثنائية القديمة غير مدعومة.
المصدر المفتوح والترخيص
تم إصدار Aspose.Slides FOSS for .NET تحت رخصة MIT. الشيفرة المصدرية الكاملة متاحة على GitHub. يمكنك استخدامها في المشاريع التجارية ومشاريع المصدر المفتوح، تعديل الشيفرة، وإعادة توزيعها دون أي قيود. لا يلزم مفتاح API أو ملف ترخيص أو تسجيل.
البدء
- دليل المطور: docs.aspose.org/slides/net/ – دروس ووثائق مفاهيمية.
- قاعدة المعرفة: kb.aspose.org/slides/net/ – أسئلة شائعة ومقالات إرشادية.
- مرجع API: reference.aspose.org/slides/net/ – مرجع كامل للفئات والطرق.