چگونه ارائهها را در .NET ایجاد کنیم
Aspose.Slides FOSS برای .NET به شما امکان میدهد ارائههای PowerPoint را بهصورت کامل با C# ایجاد کنید بدون نیاز به Microsoft Office. این راهنما نشان میدهد چگونه یک ارائه جدید ایجاد کنید، اسلایدها و اشکال اضافه کنید، متن را قالببندی کنید و نتیجه را ذخیره کنید.
راهنمای گام به گام
مرحله 1: نصب بسته
Aspose.Slides FOSS را از NuGet نصب کنید. .NET 9.0 یا بالاتر مورد نیاز است.
dotnet add package Aspose.Slides.Fossنصب را تأیید کنید:
using Aspose.Slides.Foss;
using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");هیچ بستهٔ سیستمی دیگری مورد نیاز نیست.
مرحله ۲: وارد کردن فضاینامهای مورد نیاز
فضاهای نام مورد نیاز برای ایجاد و ذخیره ارائهها را اضافه کنید.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;تمام ثابتهای نوع شکل در Aspose.Slides.Foss.ShapeType قرار دارند. تمام انواع قالببندی (FillType، NullableBool) نیز در Aspose.Slides.Foss هستند.
مرحله ۳: ایجاد یک ارائه
از new Presentation() با یک عبارت using استفاده کنید. یک ارائه جدید با یک اسلاید خالی شروع میشود.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
Console.WriteLine($"Slides in new presentation: {prs.Slides.Count}");
// work with prs
prs.Save("output.pptx", SaveFormat.Pptx);مهم: همیشه از Presentation همراه با یک عبارت using استفاده کنید. کلاس IDisposable را پیادهسازی میکند و بدون آن منابع بهدرستی آزاد نخواهند شد.
مرحله ۴: دسترسی به یک اسلاید
اسلاید اول در ایندکس 0 است. یک ارائه خالی دقیقاً یک اسلاید دارد.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0]; // zero-based index
Console.WriteLine($"Slide at index 0: {slide}");
prs.Save("output.pptx", SaveFormat.Pptx);مرحله 5: افزودن یک شکل
از slide.Shapes.AddAutoShape() برای افزودن یک AutoShape استفاده کنید. پارامترها (shapeType, x, y, width, height) همه به نقطه هستند (1 نقطه = 1/72 اینچ؛ اسلاید استاندارد 720 × 540 pt).
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
// Rectangle at (50, 50) with 400 wide and 120 tall
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 400, 120);
// Attach a text frame
shape.AddTextFrame("Hello from Aspose.Slides FOSS!");
prs.Save("with-shape.pptx", SaveFormat.Pptx);مرحله 6: ذخیرهٔ ارائه
قبل از اینکه شیء حذف شود، prs.Save(path, SaveFormat.Pptx) را فراخوانی کنید. PPTX تنها قالب خروجی پشتیبانیشده است.
prs.Save("result.pptx", SaveFormat.Pptx);فایل به صورت اتمی نوشته میشود؛ اگر خطایی پیش از این فراخوانی رخ دهد، هیچ فایل خروجیای ایجاد نمیشود.
مثال کامل عملی
برنامه زیر یک ارائه دو اسلایدی ایجاد میکند که در اسلاید اول یک شکل عنوان دارد و در اسلاید دوم یک جدول.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
// --- Slide 1: title shape ---
var slide1 = prs.Slides[0];
var title = slide1.Shapes.AddAutoShape(ShapeType.Rectangle, 40, 40, 640, 80);
var tf = title.AddTextFrame("Q1 Results: Executive Summary");
var fmt = tf.Paragraphs[0].Portions[0].PortionFormat;
fmt.FontHeight = 32;
fmt.FontBold = NullableBool.True;
fmt.FillFormat.FillType = FillType.Solid;
fmt.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 0, 70, 127);
// --- Slide 2: table ---
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];
var table = slide2.Shapes.AddTable(40, 40,
new double[] { 200.0, 120.0, 120.0 },
new double[] { 40.0, 40.0, 40.0 });
string[] headers = { "Region", "Revenue", "Growth" };
string[][] data = {
new[] { "North", "$1.2M", "+8%" },
new[] { "South", "$0.9M", "+4%" },
};
for (int col = 0; col < headers.Length; col++)
table.Rows[0][col].TextFrame.Text = headers[col];
for (int row = 0; row < data.Length; row++)
for (int col = 0; col < data[row].Length; col++)
table.Rows[row + 1][col].TextFrame.Text = data[row][col];
prs.Save("q1-results.pptx", SaveFormat.Pptx);
Console.WriteLine("Saved q1-results.pptx");مشکلات رایج و راهحلها
ObjectDisposedException
شما در حال استفاده از شی Presentation پس از پایان بلوک using هستید. تمام کارها باید قبل از اینکه شی از بین برود انجام شود.
خطای عدم وجود فضای نام برای ShapeType
اطمینان حاصل کنید که using Aspose.Slides.Foss; در بالای فایل شما قرار دارد. ShapeType، NullableBool، FillType و سایر enumها در این فضای نام هستند.
SaveFormat به جز Pptx
ارسال هر مقدار SaveFormat به جز SaveFormat.Pptx استثنایی ایجاد نمیکند. پارامتر format بهصورت ساکت نادیده گرفته میشود و همیشه PPTX تولید میشود. برای صراحت همیشه از SaveFormat.Pptx استفاده کنید.
سوالات متداول
اندازه پیشفرض اسلاید چیست؟
یک Presentation() جدید اسلایدها را با اندازه استاندارد ۱۰ × ۷٫۵ اینچ (۷۲۰ × ۵۴۰ نقطه) ایجاد میکند. تغییر اندازه اسلاید در این نسخه هنوز پشتیبانی نمیشود.
آیا میتوانم بیش از یک اسلاید اضافه کنم؟
بله. با فراخوانی prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) یک اسلاید خالی اضافه کنید و با استفاده از ایندکس به آن دسترسی پیدا کنید:
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];آیا میتوانم یک فایل موجود را باز کنم و اسلایدها را اضافه کنم؟
بله:
using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);کدام فرمتها را میتوانم ذخیره کنم؟
فقط SaveFormat.Pptx پشتیبانی میشود. خروجی به PDF، HTML، SVG یا تصاویر در این نسخه موجود نیست.