Въведение
Aspose.Slides FOSS for .NET предоставя пълен набор от класове за управление на PowerPoint презентации изцяло на C#. Библиотеката ви позволява да създавате нови .pptx файлове от нулата, да зареждате съществуващи, да манипулирате слайдове и форми и да запазвате резултата обратно на диска – всичко без инсталиране на Microsoft Office или каквито и да е външни зависимости.
Пакетът NuGet Aspose.Slides.Foss цели .NET 9.0 и работи идентично на Windows, macOS, Linux и Docker контейнери. Той е публикуван под MIT license, така че можете да го използвате в комерсиални и с отворен код проекти без ограничения.
Тази публикация разглежда основните възможности за управление на презентации: работа със слайдове, изграждане на йерархии от форми, организиране на текст, управление на таблици и запазване в 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().
Фигури и Автофигури
Всеки слайд съдържа 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 следват същия модел.
Text: Параграфи и Части
Текстът в презентацията се намира в 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);
Поддържани формати
| Формат | Разширение | Четене | Запис |
|---|---|---|---|
| PPTX | .pptx | Да | Да |
| PPSX | .ppsx | Не | Да |
| PPTM | .pptm | Не | Да |
| POTX | .potx | Не | Да |
| ODP | .odp | Не | Да |
| FODP | .fodp | Не | Да |
Забележка: Библиотеката чете и записва PPTX нативно. Други формати, изброени в
SaveFormatenum, са декларирани на ниво API; реалната точност на експорта може да варира. Наследеният.pptдвоичен формат не се поддържа.
Отворен код и лицензиране
Aspose.Slides FOSS за .NET е публикуван под лиценз MIT. Пълният изходен код е достъпен в GitHub. Можете да го използвате в комерсиални и с отворен код проекти, да модифицирате кода и да го разпространявате без ограничения. Не е необходим API ключ, файл с лиценз или регистрация.
Започване
- Developer Guide: docs.aspose.org/slides/net/ – уроци и концептуална документация.
- Knowledge Base: kb.aspose.org/slides/net/ – ЧЗВ и статии с инструкции.
- API Reference: reference.aspose.org/slides/net/ – пълен справочник за класове и методи.