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