Passer au contenu du pied de page
OUTILS PPT

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.

Comment utiliser C# pour convertir une présentation PowerPoint en image

  1. Créer une instance de l'application PowerPoint.
  2. Ouvrez la présentation en utilisant l'instance.
  3. Vérifiez et créez un dossier de sortie.
  4. Parcourez les diapositives et exportez-les sous forme d'images.
  5. 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.

! Comment utiliser C# pour convertir une présentation PowerPoint en image : Figure 1 - Ouvrez Visual Studio et choisissez Fichier - Nouveau - 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.

Comment utiliser C# pour convertir une présentation PowerPoint en image : Figure 2 - Dans la boîte de dialogue " Créer un nouveau projet ", sélectionnez le langage de programmation C# et l'application console. Configurez le nom et l'emplacement du projet, puis cliquez sur le bouton " Suivant ".

Sélectionnez l'emplacement de stockage du projet.

Cliquez sur " Créer " pour commencer à travailler sur un nouveau projet d'application console.

! Comment utiliser C# pour convertir PowerPoint en image : Figure 3 - Sélectionnez le framework .NET approprié et cliquez sur le bouton " Créer ".

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
$vbLabelText   $csharpLabel

L'espace de noms C# nécessaire pour fonctionner avec les applications PowerPoint est importé à l'aide de 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

! Comment utiliser C# pour convertir un PowerPoint en image : Figure 4 - Fichier PowerPoint utilisé pour l'exemple de code.

Application pptApplication = new Application(); permet de 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 vérifions si le dossier de sortie " outputFolder " est présent. Sinon, nous utilisons la méthode Directory.CreateDirectory() pour le créer.

Sortie Console

! Comment utiliser C# pour convertir une présentation PowerPoint en image : Figure 5 - Sortie console.

Nous utilisons une boucle for pour parcourir chaque diapositive de la présentation. La pptPresentation fournit le nombre total de diapositives à l'aide de 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 (sous la Slide{i}.png ). Ensuite, nous utilisons pptPresentation pour exporter la diapositive PowerPoint sous forme d'image (dans cet exemple, au format PNG) à l'aide de 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 fermer la session PowerPoint. Pour libérer correctement les ressources système, utilisez Quit() .

Sortie - Convertir une présentation PowerPoint en images PNG

! Comment utiliser C# pour convertir PowerPoint en image : Figure 6 - Diapositives PowerPoint exportées au format 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 avoir installé PowerPoint.
  • 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 du contenu enrichi : 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 Slide peut être enregistrée au format PNG ou JPEG à des résolutions personnalisées à l'aide des méthodes Save() ou Export() (par exemple presentation.Save(&quot;Slide1.png&quot;, 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
$vbLabelText   $csharpLabel

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"
$vbLabelText   $csharpLabel

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()
$vbLabelText   $csharpLabel

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.

Pour découvrir davantage de fonctionnalités, consultez la documentation de l'API IronPPT ou examinez les exemples de code détaillés (y compris leur index llms.txt ). Un essai gratuit est disponible — essayez-le et ajoutez la conversion PowerPoint vers image à votre boîte à outils .NET dès aujourd'hui !

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite