Comment créer des présentations en .NET

Comment créer des présentations en .NET

Aspose.Slides FOSS for .NET vous permet de créer des présentations PowerPoint entièrement en C# sans dépendance à Microsoft Office. Ce guide montre comment créer une nouvelle présentation, ajouter des diapositives et des formes, formater le texte et enregistrer le résultat.

Guide étape par étape

Étape 1 : Installer le package

Installez Aspose.Slides FOSS depuis NuGet. .NET 9.0 ou version ultérieure est requis.

dotnet add package Aspose.Slides.Foss

Vérifiez l’installation :

using Aspose.Slides.Foss;

using var prs = new Presentation();
Console.WriteLine("Aspose.Slides FOSS ready");

Aucun autre paquet système n’est requis.


Étape 2 : Importer les espaces de noms requis

Ajoutez les espaces de noms nécessaires pour créer et enregistrer des présentations.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

Toutes les constantes de type forme se trouvent dans Aspose.Slides.Foss.ShapeType. Tous les types de mise en forme (FillType, NullableBool) sont également dans Aspose.Slides.Foss.


Étape 3 : Créer une présentation

Utilisez new Presentation() avec une déclaration using. Une nouvelle présentation commence avec une diapositive vierge.

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);

Important : Utilisez toujours Presentation avec une instruction using. La classe implémente IDisposable et les ressources ne seront pas libérées correctement sans cela.


Étape 4 : Accéder à une diapositive

La première diapositive se trouve à l’index 0. Une présentation vierge contient exactement une diapositive.

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);

Étape 5 : Ajouter une forme

Utilisez slide.Shapes.AddAutoShape() pour ajouter une AutoShape. Les paramètres sont (shapeType, x, y, width, height) tous en points (1 point = 1/72 pouce ; la diapositive standard fait 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);

Étape 6 : Enregistrer la présentation

Appelez prs.Save(path, SaveFormat.Pptx) avant que l’objet ne soit libéré. PPTX est le seul format de sortie pris en charge.

prs.Save("result.pptx", SaveFormat.Pptx);

Le fichier est écrit de manière atomique ; si une erreur survient avant cet appel, aucun fichier de sortie n’est créé.


Exemple complet de travail

Le programme suivant crée une présentation de deux diapositives avec une forme de titre sur la première diapositive et un tableau sur la seconde.

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");

Problèmes courants et solutions

ObjectDisposedException

Vous utilisez l’objet Presentation après la fin du bloc using. Tout le travail doit être effectué avant que l’objet ne soit libéré.

Erreur de namespace manquant pour ShapeType

Assurez-vous d’avoir using Aspose.Slides.Foss; en haut de votre fichier. ShapeType, NullableBool, FillType et d’autres enums sont dans cet espace de noms.

SaveFormat autre que Pptx

Passer toute valeur SaveFormat autre que SaveFormat.Pptx ne génère pas d’exception. Le paramètre format est silencieusement ignoré et le PPTX est toujours produit. Utilisez toujours SaveFormat.Pptx pour être explicite.


Foire aux questions

Quelle est la taille de diapositive par défaut ?

Un nouveau Presentation() crée des diapositives au format standard de 10 × 7,5 pouces (720 × 540 points). La modification de la taille des diapositives n’est pas encore prise en charge dans cette édition.

Puis-je ajouter plus d’une diapositive ?

Oui. Appelez prs.Slides.AddEmptySlide(prs.LayoutSlides[0]) pour ajouter une diapositive vierge et y accéder par indice :

prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
var slide2 = prs.Slides[1];

Puis-je ouvrir un fichier existant et ajouter des diapositives ?

Oui:

using var prs = new Presentation("existing.pptx");
prs.Slides.AddEmptySlide(prs.LayoutSlides[0]);
prs.Save("existing.pptx", SaveFormat.Pptx);

Quels formats puis-je enregistrer ?

Seul SaveFormat.Pptx est pris en charge. L’exportation vers PDF, HTML, SVG ou images n’est pas disponible dans cette édition.


Voir aussi

 Français