Aspose.Slides FOSS برای .NET یک کتابخانهٔ خالص C# تحت مجوز MIT است که برای کار با فایلهای PowerPoint .pptx استفاده میشود. یک بستهٔ NuGet را اضافه کنید و بلافاصله شروع به ایجاد، خواندن و ویرایش ارائهها کنید بدون اینکه نیاز به نصب Microsoft Office یا هر زماناجرای مالکیتی داشته باشید.
این کتابخانه یک API ارائه (Presentation) را که بر پایهٔ Presentation، Slide، Shape، TextFrame، Paragraph و Portion ساخته شده است، ارائه میدهد؛ مدلی مفهومی که خود PowerPoint از آن استفاده میکند. اسلایدها را اضافه یا حذف کنید، AutoShapeها، جدولها و کانکتورها را وارد کنید، متن را در سطح کاراکتر با بولد، ایتالیک، اندازه و رنگ قلم قالببندی کنید، پرکنندههای یکدانه یا گرادیان اعمال کنید و افکتهای بصری (سایه، درخشندگی، تاری، انعکاس) را اضافه کنید.
الگوی IDisposable تضمین میکند که پاکسازی منابع بهصورت قابل اعتماد انجام شود: همیشه یک Presentation را در یک عبارت using بپیچید. بخشهای XML ناشناسی که در هنگام بارگذاری مواجه میشوند، بهصورت دقیق هنگام ذخیره حفظ میشوند، بنابراین دورگرد (round‑tripping) هرگز محتوایی را که کتابخانه هنوز نمیفهمد، از بین نمیبرد.
این کتابخانه به .NET 9.0 یا بالاتر نیاز دارد و هیچ افزونهٔ بومی برای کامپایل ندارد.
.pptx files via new Presentation() or new Presentation(file).SlideCollection with AddClone(), AddEmptySlide(), Remove(), and RemoveAt().ShapeType geometries via AddAutoShape().AddConnector().NotesSlideManager.GetSlideComments().Portion objects via PortionFormat.FillFormat and FillType.EffectFormat.ParagraphFormat.Alignment.Aspose.Slides FOSS installs with a single dotnet add package Aspose.Slides.Foss command. The library is pure C# with no native extensions to compile and no system packages to install.
The API mirrors PowerPoint’s own object model (Presentation, Slide, Shape, TextFrame, Paragraph, Portion), so anyone familiar with the PowerPoint object model can use the library immediately. It is MIT-licensed, open-source on GitHub, and requires .NET 9.0 or later.
Use a using statement to ensure the Presentation is always disposed and resources are freed. AddAutoShape() takes a ShapeType enum, then x/y position and width/height in points. Call AddTextFrame() to create the text frame and set the initial text in one call — do not access TextFrame before calling AddTextFrame() as the frame is null until created.
dotnet add package Aspose.Slides.Foss
using Aspose.Slides.Foss;
using var prs = new Presentation();
var slide = prs.Slides[0];
// Add a rectangle AutoShape
var shape = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 50, 400, 150
);
shape.AddTextFrame("Hello, Aspose.Slides!");
prs.Save("output.pptx", SaveFormat.Pptx);
Text formatting works at the Portion level — the smallest unit of a run of characters. Open the saved file, navigate to the first portion of the first paragraph, and set font properties directly. Shape fill is independent: set FillType to Solid and assign a color to SolidFillColor.Color.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using var prs = new Presentation("output.pptx");
var shape = (IAutoShape)prs.Slides[0].Shapes[0];
var portion = shape.TextFrame.Paragraphs[0].Portions[0];
// Bold, 18pt, dark-blue text
portion.PortionFormat.FontBold = NullableBool.True;
portion.PortionFormat.FontHeight = 18;
portion.PortionFormat.FillFormat.SolidFillColor.Color =
Color.FromArgb(255, 0, 0, 139);
// Solid background fill on the shape
shape.FillFormat.FillType = FillType.Solid;
shape.FillFormat.SolidFillColor.Color =
Color.FromArgb(255, 240, 248, 255);
prs.Save("formatted.pptx", SaveFormat.Pptx);
It is a free, MIT-licensed pure-C# library for creating, reading, and editing PowerPoint .pptx presentations without requiring Microsoft Office.
PPTX is the supported read/write format. Export to PDF, HTML, SVG, or images is not available in this edition.
No. Aspose.Slides FOSS is a pure-C# library with no dependency on Microsoft Office, COM automation, or any proprietary runtime.
Run dotnet add package Aspose.Slides.Foss. The library requires .NET 9.0 or later. There are no native extensions to compile.
Yes. The library supports outer shadow, glow, blur, and reflection effects on any shape object via the EffectFormat API.
Yes. Always wrap a Presentation in a using statement (using var prs = new Presentation();) to ensure reliable resource cleanup.
No. Unknown XML parts encountered during load are preserved verbatim on save, so content the library does not yet understand is never lost.
The library is MIT-licensed and hosted on GitHub. Bug reports and pull requests are welcome.