Як створювати презентації в .NET
Aspose.Slides FOSS for .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");Інші системні пакети не потрібні.
Крок 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 × 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 або зображення недоступний у цьому випуску.