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'images se présente fréquemment dans le domaine du développement de logiciels. De nombreux développeurs trouvent utile de pouvoir convertir par programme 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 de systèmes. Cet article vous expliquera comment réaliser cette opération avec C# ppt to image et inclura quelques exemples de code pour vous aider dans votre démarche.

Comment utiliser C# pour convertir PowerPoint en image

  1. Créer une instance d'application PowerPoint.
  2. Ouvrez la présentation à l'aide de l'instance.
  3. Vérifier et créer un dossier de sortie.
  4. Itérez des diapositives et exportez-les vers des images.
  5. Fermez la présentation et quittez l'application.

Convertir une présentation PowerPoint en format image?

Avant d'entrer dans le vif du sujet, examinons rapidement l'importance de la conversion des diapositives PowerPoint en photos. Même si PowerPoint est un excellent outil pour réaliser des présentations dynamiques, il n'est pas toujours possible de partager ces fichiers dans leur format d'origine. Parfois, seules des diapositives particulières ou des photos extraites de la présentation sont nécessaires, et d'autres fois, différents systèmes et paramètres peuvent ne pas permettre le rendu direct des fichiers PowerPoint. La transformation des présentations PowerPoint en images offre une solution globale, simple à partager et à visualiser sur une variété d'appareils et d'applications.

Utilisation de la bibliothèque interop de PowerPoint

Il existe plusieurs méthodes pour transformer les présentations PowerPoint en photos en C#. L'utilisation de l'espace de noms Microsoft.Office.Interop.PowerPoint, qui offre des classes et des méthodes pour l'interfaçage programmatique avec les applications PowerPoint, est une approche populaire. La traduction doit rester professionnelle, en préservant la précision technique tout en expliquant les caractéristiques et les avantages de ces outils de développement.

Créer un nouveau projet Visual Studio

Suivez les étapes ci-dessous pour créer un nouveau projet Visual Studio :

Ouvrez l'IDE Visual Studio. Assurez-vous d'avoir installé Visual Studio sur votre PC avant de l'utiliser.

Lancer un nouveau projet:

Choisissez Fichier, Nouveau, et enfin Projet.

Comment utiliser C# pour convertir 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 partie gauche.

Ensuite, sélectionnez le modèle "Console App" ou "Console App (.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 PowerPoint en image : Figure 2 - Dans la boîte Créer un nouveau projet, sélectionnez le langage de programmation C# et Console App. 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 .NET Framework approprié et cliquez sur le bouton "Créer".

Convertir des diapositives PowerPoint en images en C#;

Commençons par voir comment utiliser l'espace de noms Microsoft.Office.Interop.PowerPoint pour convertir des diapositives PowerPoint en images. Assurez-vous d'abord que les assemblages requis sont installés et ajoutés à votre projet C# en tant que références. Ces assemblages sont généralement trouvés en se référant directement aux assemblages InterOp ou en installant les Microsoft Office Primary Interop Assemblies (PIA).

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 travailler 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), qui est l'endroit où les photographies créées seront conservées, et le chemin d'accès au fichier PowerPoint (pptFilePath). Cette méthode permet de transformer les présentations PowerPoint en photos.

Fichier de présentation PowerPoint

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

Application pptApplication = new Application(); est utilisé pour démarrer une nouvelle instance du programme PowerPoint. Cela permet une interaction programmatique avec PowerPoint. À l'aide de 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. Si ce n'est pas le cas, nous utilisons la méthode Directory.CreateDirectory() pour le créer.

Sortie console

Comment utiliser C# pour convertir PowerPoint en image : Figure 5 - Sortie de la 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 des diapositives pour créer le chemin de sortie de l'image de chaque diapositive (comme Diapositive{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 la taille (largeur : 1024, hauteur : 768). Enfin, nous utilisons pptPresentation.Close() pour terminer la présentation et pptApplication.Quit() pour terminer la session PowerPoint. Pour renoncer de manière appropriée aux ressources du système, utilisez Quit().

Sortie - Convertir un PowerPoint en images PNG

Comment utiliser C# pour convertir PowerPoint en image : Figure 6 - Diapositives PowerPoint exportées en images PNG.

IronPPT

IronPPT est la bibliothèque .NET dédiée d'Iron Software qui permet de travailler avec des fichiers PowerPoint (PPT/PPTX) à l'aide de C# ou VB.NET -sans nécessiter Microsoft Office ou des composants Office Interop.

Caractéristiques principales

  • Traitement PowerPoint sans bureau : 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é.
  • Types de diapositives et mise en page : contrôle de la taille, de l'orientation, de l'arrière-plan et des mises en page principales.
  • Riche prise en charge du contenu : ajouter et styliser du texte (police, taille, couleur, alignement), dessiner des formes, insérer des images et configurer des graphiques ou des tableaux, le tout à l'aide d'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("Slide1.png", width:1200, height:800)).
  • Multiples versions .NET 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 de conteneurs.
  • Sécuritaire pour le serveur et adapté aux threads : idéal pour les services d'arrière-plan, les API web ou les charges de travail CI/CD.

Installer IronPPT

Ajoutez le package NuGet à votre projet en utilisant soit :

Install-Package IronPPT

ou via l'interface graphique du gestionnaire de paquets NuGet de Visual Studio (recherchez "IronPPT"). Après l'installation, importez-la en ajoutant :

using IronPPT;
using IronPPT;
Imports IronPPT
$vbLabelText   $csharpLabel

Pour déverrouiller 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

Convertir des diapositives PowerPoint en images avec IronPPT

Avec IronPPT, la conversion des diapositives en images est propre et concise. Voici un exemple idiomatique en C# qui montre comment procéder :

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 toute COM. IronPPT gère la pagination, la mise à l'échelle des vecteurs et le rendu des images en interne, de sorte que vos images correspondent à l'aspect et à la convivialité 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 dréférence API détaillée pour la répartition 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 pour la prévisualisation des documents, l'établissement de rapports automatisés ou le traitement en aval. Vous pouvez utiliser les composants Microsoft Office Interop pour cette tâche, mais ils présentent de nombreuses limitations : installation d'Office, problèmes de stabilité, problèmes de licence et contraintes liées à la plateforme.

<Au lieu de cela, IronPPT offre une API complète, performante et multiplateforme pour convertir les fichiers .pptx en images, qu'il s'agisse de diapositives individuelles ou de présentations entières. Que vous travailliez dans un client de bureau, une API web ou un environnement de serveur sans tête, IronPPT offre la même fidélité et le même contrôle sans avoir besoin d'Office. Remplacez le code basé sur l'interopérabilité ci-dessus par IronPPT et commencez à générer des aperçus de PowerPoint plus rapidement, de manière plus fiable et avec un contrôle .NET complet.

Visit the IronPPT API Reference or view the detailed code examples (including their llms.txt index) to explore more capabilities. Une version d'essai gratuite est disponible - essayez-la et ajoutez la conversion PowerPoint-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