Comment utiliser C# pour convertir PowerPoint en image
La nécessité de convertir des présentations PowerPoint en formats d'image se présente fréquemment dans le domaine du développement logiciel. De nombreux développeurs trouvent utile de pouvoir convertir par programmation des fichiers PowerPoint en photos, que ce soit pour la génération d'aperçus, la création de vignettes ou l'intégration système. Cet article explique comment réaliser cette opération avec C# pour convertir un fichier ppt en image et inclut des exemples de code pour vous accompagner.
IronPPT charge et enregistre les fichiers PPTX en toute simplicité, sans avoir besoin de Microsoft Office. Idéal pour automatiser l'affichage des diapositives, du texte, des formes et des images dans n'importe quelle application .NET. Lancez-vous avec IronPPT dès maintenant !
Comment utiliser C# pour convertir une présentation PowerPoint en image
- Créer une instance de l'application PowerPoint.
- Ouvrez la présentation en utilisant l'instance.
- Vérifiez et créez un dossier de sortie.
- Parcourez les diapositives et exportez-les sous forme d'images.
- Clôturer la présentation et quitter l'application.
Convertir une présentation PowerPoint en format image ?
Avant d'entrer dans les détails, examinons rapidement l'importance de convertir les diapositives PowerPoint en photos. Même si PowerPoint est un excellent outil pour créer des présentations dynamiques, il n'est pas toujours possible de partager ces fichiers dans leur format d'origine. Parfois, seules certaines diapositives ou photos extraites de la présentation sont nécessaires, et parfois, différents systèmes et paramètres peuvent ne pas permettre le rendu direct des fichiers PowerPoint. Transformer les présentations PowerPoint en images offre une solution complète, simple à partager et à visualiser sur divers appareils et applications.
Utilisation de la bibliothèque d'interopérabilité PowerPoint
Il existe plusieurs méthodes pour convertir des présentations PowerPoint en photos en C#. L'utilisation de l'espace de noms[Microsoft.Office.Interop.PowerPoint](https://learn.microsoft.com/en-us/previous-versions/office/office-12/ff761925(v=office.12) , qui offre des classes et des méthodes pour interagir par programmation avec les applications PowerPoint, est une approche courante. Cela offre des fonctionnalités étendues pour travailler avec des fichiers PowerPoint.
Créer un Nouveau Projet Visual Studio
Suivez les étapes ci-dessous pour créer un nouveau projet Visual Studio :
Ouvrez l'environnement de développement intégré (IDE) Visual Studio. Assurez-vous d'avoir installé Visual Studio sur votre ordinateur avant de l'utiliser.
Lancer un nouveau projet :
Choisissez Fichier, Nouveau, puis Projet.

Dans la boîte " Créer un nouveau projet ", sélectionnez votre langage de programmation préféré (C#, par exemple) dans la colonne de gauche.
Ensuite, sélectionnez le modèle " Application console " ou " Application console (.NET Core) " dans la liste des modèles de projet disponibles.
Veuillez remplir la section "Nom" pour donner un nom à votre projet.

Sélectionnez l'emplacement de stockage du projet.
Cliquez sur " Créer " pour commencer à travailler sur un nouveau projet d'application console.

Convertir des diapositives PowerPoint en images en C
Commençons par examiner comment utiliser l'espace de noms Microsoft.Office.Interop.PowerPoint pour convertir des diapositives PowerPoint en images. Assurez-vous d'abord que les assemblys requis sont installés et ajoutés comme références à votre projet C#. Ces assemblys se trouvent généralement en référençant directement les assemblys InterOp ou en installant les assemblys d'interopérabilité principaux (PIA) de Microsoft Office.
Exemple de code
using System.IO; // Import System.IO namespace for file handling
using Microsoft.Office.Interop.PowerPoint; // Import Interop PowerPoint namespace
class Program
{
static void Main(string[] args)
{
string pptFilePath = "demo.pptx"; // Path to your PowerPoint file
string outputFolder = "output_images"; // Output folder path where images will be saved
ConvertPptToImages(pptFilePath, outputFolder); // Convert PowerPoint slides to images
}
static void ConvertPptToImages(string pptFilePath, string outputFolder)
{
Application pptApplication = new Application(); // Create a new PowerPoint application instance
Presentation pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse); // Open the PowerPoint presentation
if (!Directory.Exists(outputFolder)) // Check if the output folder exists
Directory.CreateDirectory(outputFolder); // Create the output folder if it doesn't exist
int slidesCount = pptPresentation.Slides.Count; // Get the number of slides in the presentation
for (int i = 1; i <= slidesCount; i++) // Iterate through all slides
{
string outputPath = Path.Combine(outputFolder, $"Slide{i}.png"); // Set the output path for the current slide
pptPresentation.Slides[i].Export(outputPath, "png", 1024, 768); // Export slide to PNG format
}
pptPresentation.Close(); // Close the PowerPoint presentation
pptApplication.Quit(); // Quit the PowerPoint application
}
}
using System.IO; // Import System.IO namespace for file handling
using Microsoft.Office.Interop.PowerPoint; // Import Interop PowerPoint namespace
class Program
{
static void Main(string[] args)
{
string pptFilePath = "demo.pptx"; // Path to your PowerPoint file
string outputFolder = "output_images"; // Output folder path where images will be saved
ConvertPptToImages(pptFilePath, outputFolder); // Convert PowerPoint slides to images
}
static void ConvertPptToImages(string pptFilePath, string outputFolder)
{
Application pptApplication = new Application(); // Create a new PowerPoint application instance
Presentation pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse); // Open the PowerPoint presentation
if (!Directory.Exists(outputFolder)) // Check if the output folder exists
Directory.CreateDirectory(outputFolder); // Create the output folder if it doesn't exist
int slidesCount = pptPresentation.Slides.Count; // Get the number of slides in the presentation
for (int i = 1; i <= slidesCount; i++) // Iterate through all slides
{
string outputPath = Path.Combine(outputFolder, $"Slide{i}.png"); // Set the output path for the current slide
pptPresentation.Slides[i].Export(outputPath, "png", 1024, 768); // Export slide to PNG format
}
pptPresentation.Close(); // Close the PowerPoint presentation
pptApplication.Quit(); // Quit the PowerPoint application
}
}
Imports System.IO ' Import System.IO namespace for file handling
Imports Microsoft.Office.Interop.PowerPoint ' Import Interop PowerPoint namespace
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim pptFilePath As String = "demo.pptx" ' Path to your PowerPoint file
Dim outputFolder As String = "output_images" ' Output folder path where images will be saved
ConvertPptToImages(pptFilePath, outputFolder) ' Convert PowerPoint slides to images
End Sub
Private Shared Sub ConvertPptToImages(ByVal pptFilePath As String, ByVal outputFolder As String)
Dim pptApplication As New Application() ' Create a new PowerPoint application instance
Dim pptPresentation As Presentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse) ' Open the PowerPoint presentation
If Not Directory.Exists(outputFolder) Then ' Check if the output folder exists
Directory.CreateDirectory(outputFolder) ' Create the output folder if it doesn't exist
End If
Dim slidesCount As Integer = pptPresentation.Slides.Count ' Get the number of slides in the presentation
For i As Integer = 1 To slidesCount ' Iterate through all slides
Dim outputPath As String = Path.Combine(outputFolder, $"Slide{i}.png") ' Set the output path for the current slide
pptPresentation.Slides(i).Export(outputPath, "png", 1024, 768) ' Export slide to PNG format
Next i
pptPresentation.Close() ' Close the PowerPoint presentation
pptApplication.Quit() ' Quit the PowerPoint application
End Sub
End Class
L'espace de noms C# nécessaire pour fonctionner avec les applications PowerPoint est importé en utilisant la déclaration Microsoft.Office.Interop.PowerPoint;. Le point d'entrée du programme est la méthode Main. Il désigne le dossier de sortie (outputFolder), dans lequel seront conservées les photographies créées, et le chemin d'accès au fichier PowerPoint (pptFilePath). Cette méthode assure la transformation effective des présentations PowerPoint en photos.
Fichier de présentation PowerPoint

Application pptApplication = new Application(); est utilisé pour démarrer une nouvelle instance du programme PowerPoint. Cela permet une interaction programmatique avec PowerPoint. En utilisant pptApplication.Presentations, nous ouvrons le fichier de présentation PowerPoint indiqué par la fonction pptFilePath.Open(). Cette fonction renvoie un objet Presentation, qui représente la présentation ouverte. Nous déterminons si le dossier de sortie "outputFolder" est présent. Sinon, nous utilisons la méthode Directory.CreateDirectory() pour la créer.
Sortie Console

Nous utilisons une boucle for pour parcourir chaque diapositive de la présentation. Le pptPresentation fournit le nombre total de diapositives utilisant la propriété Slides.Count. Nous utilisons le chemin du dossier de sortie et l'index de la diapositive pour créer le chemin de sortie de l'image de chaque diapositive (comme Slide{i}.png). Ensuite, nous utilisons pptPresentation pour exporter la diapositive PowerPoint sous forme d'image (dans cet exemple, au format d'image PNG) en utilisant la fonction Export(). Les paramètres sont le format de l'image (" format png ") et sa taille (largeur : 1024, hauteur : 768). Enfin, nous utilisons pptPresentation.Close() pour terminer la présentation et pptApplication.Quit() pour terminer la session PowerPoint. Pour libérer correctement les ressources système, utilisez Quit().
Sortie - Convertir une présentation PowerPoint en images PNG

IronPPT
IronPPT est la bibliothèque .NET dédiée d'Iron Software permettant de travailler avec des fichiers PowerPoint (PPT/PPTX) en utilisant C# ou VB.NET, sans nécessiter Microsoft Office ni les composants Office Interop.
Fonctionnalités clés
- Traitement PowerPoint sans Office : Chargez, modifiez ou créez des fichiers
.pptx(et.ppt) sur n'importe quelle plateforme .NET — Windows, macOS, Linux, Docker ou Azure — sans que PowerPoint soit installé. - Contrôle des types de diapositives et de la mise en page, y compris la taille, l'orientation, l'arrière-plan et les modèles de diapositives.
- Prise en charge de contenus riches : ajoutez et mettez en forme du texte (police, taille, couleur, alignement), dessinez des formes, insérez des images et configurez des graphiques ou des tableaux, le tout grâce à une API fluide.
- Exportation d'images haute fidélité : chaque
Slidepeut être enregistré au format PNG ou JPEG à des résolutions personnalisées en utilisant les méthodesSave()ouExport()(par exemplepresentation.Save("Slide1.png", width:1200, height:800)). - Plusieurs versions de .NET sont prises en charge : .NET Framework 4.6.2+, .NET Core 3.1, .NET 5–9 et .NET 6/7/8 dans les environnements Azure ou conteneurisés.
- Compatible avec les serveurs et les threads : idéal pour les services en arrière-plan, les API Web ou les charges de travail CI/CD.
Installer IronPPT
Ajoutez le package NuGet à votre projet en utilisant l'une des méthodes suivantes :
Install-Package IronPPT
ou via l'interface graphique du gestionnaire de packages NuGet de Visual Studio (recherchez " IronPPT "). Après l'installation, importez-le en ajoutant :
using IronPPT;
using IronPPT;
Imports IronPPT
Pour débloquer toutes les fonctionnalités, définissez votre clé de licence ou utilisez la clé d'essai gratuite de 30 jours :
IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY";
IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY";
IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY"
Convertissez vos diapositives PowerPoint en images avec IronPPT
Avec IronPPT, la conversion des diapositives en images est propre et concise. Voici un exemple idiomatique en C# montrant comment :
using IronPPT;
using System.IO;
// Optional: apply the license key
// IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY";
var presentation = PresentationDocument.Load("input.pptx");
if (!Directory.Exists("images"))
Directory.CreateDirectory("images");
for (int i = 0; i < presentation.Slides.Count; i++)
{
var slide = presentation.Slides[i];
string filePath = Path.Combine("images", $"slide{i+1}.png");
slide.SaveAsImage(filePath, width: 1024, height: 768);
}
presentation.Close();
using IronPPT;
using System.IO;
// Optional: apply the license key
// IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY";
var presentation = PresentationDocument.Load("input.pptx");
if (!Directory.Exists("images"))
Directory.CreateDirectory("images");
for (int i = 0; i < presentation.Slides.Count; i++)
{
var slide = presentation.Slides[i];
string filePath = Path.Combine("images", $"slide{i+1}.png");
slide.SaveAsImage(filePath, width: 1024, height: 768);
}
presentation.Close();
Imports IronPPT
Imports System.IO
' Optional: apply the license key
' IronPPT.License.LicenseKey = "YOUR_LICENSE_KEY";
Private presentation = PresentationDocument.Load("input.pptx")
If Not Directory.Exists("images") Then
Directory.CreateDirectory("images")
End If
For i As Integer = 0 To presentation.Slides.Count - 1
Dim slide = presentation.Slides(i)
Dim filePath As String = Path.Combine("images", $"slide{i+1}.png")
slide.SaveAsImage(filePath, width:= 1024, height:= 768)
Next i
presentation.Close()
Cette approche permet d'éviter complètement le COM. IronPPT gère en interne la pagination, la mise à l'échelle vectorielle et le rendu des images, de sorte que vos images correspondent à l'apparence de PowerPoint.
Pour une utilisation plus avancée, vous pouvez contrôler l'ordre des diapositives, réutiliser des modèles, ajouter des tableaux ou des graphiques, ou insérer des images SVG/vectorielles personnalisées (voir la référence API détaillée pour la description complète des classes et des méthodes).
Conclusion
Dans de nombreuses applications .NET modernes, la conversion des présentations PowerPoint en images est essentielle, que ce soit pour l'aperçu des documents, la génération de rapports automatisés ou le traitement en aval. Vous pouvez utiliser les composants d'interopérabilité de Microsoft Office pour cette tâche, mais cela présente de nombreuses limitations : installation d'Office, problèmes de stabilité, problèmes de licence et contraintes de plateforme.
IronPPT offre une API complète, performante et multiplateforme pour convertir les fichiers .pptx en images, des diapositives individuelles aux présentations complètes. Que vous utilisiez un client de bureau, une API web ou un serveur sans interface graphique, IronPPT garantit la même fidélité et le même niveau de contrôle, sans nécessiter Office. Remplacez le code basé sur Interop ci-dessus par IronPPT et générez des aperçus PowerPoint plus rapidement, plus efficacement et avec un contrôle total grâce à .NET.
Visitez la référence de l'API IronPPT ou consultez les exemples de code détaillés (y compris leur index llms.txt ) pour explorer davantage de fonctionnalités. Un essai gratuit est disponible — essayez-le et ajoutez la conversion PowerPoint vers image à votre boîte à outils .NET dès aujourd'hui !


