Вступ
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().
Фігури та автофігури
Кожен слайд містить 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 key, license file або реєстрація.
Початок роботи
- Developer Guide: docs.aspose.org/slides/net/ – підручники та концептуальна документація.
- Knowledge Base: kb.aspose.org/slides/net/ – FAQ та статті «як це зробити».
- API Reference: reference.aspose.org/slides/net/ – повний довідник класів і методів.