Як створювати презентації у .NET

Як створювати презентації у .NET

Aspose.Slides FOSS for .NET lets you create PowerPoint presentations entirely in C# with no dependency on Microsoft Office. This guide shows how to create a new presentation, add slides and shapes, format text, and save the result.

Покроковий посібник

Крок 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");

Інші системні пакети не потрібні.


Крок 2: Імпортуйте необхідні простори імен

Додайте простори імен, необхідні для створення та збереження презентацій.

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 і ресурси не будуть правильно звільнені без нього.


Крок 4: Доступ до слайду

Перший слайд має індекс 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 x 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, а інші перерахування знаходяться в цьому просторі імен.

SaveFormat крім Pptx

Передача будь‑якого SaveFormat значення, відмінного від SaveFormat.Pptx не викликає виключення. Параметр format без повідомлення ігнорується, і завжди створюється PPTX. Завжди використовуйте SaveFormat.Pptx для явності.


Часті запитання

Який розмір слайду за замовчуванням?

Новий Presentation() створює слайди стандартного розміру 10 × 7,5 дюйма (720 × 540 пунктів). Змінення розміру слайдів ще не підтримується в цьому випуску.

Чи можу я додати більше одного слайду?

Так. Викличте 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 або зображення недоступний у цьому випуску.


Див. також

 Українська