IRONSOFTWAREHOME
UTILISATION DE IRONPDF

Comment créer une application de rapport en C#

Curtis Chau
Curtis Chau
Updated: 19 juillet 2026

Ouvrir un fichier PDF dans la visionneuse par défaut est une tâche courante dans le développement d'applications .NET . Après avoir généré des fichiers PDF par programmation avec IronPDF , vous devez souvent les afficher immédiatement aux utilisateurs dans l'application par défaut qu'ils ont choisie, telle qu'Adobe Acrobat ou Microsoft Edge. Ce guide vous guide à travers les étapes pour générer des fichiers PDF en utilisant IronPDF et les ouvrir automatiquement sous Windows en utilisant System.Diagnostics.Process.Start.

La combinaison des capacités puissantes de conversion HTML en PDF d'IronPDF avec la méthode de lancement simple Process crée un flux de travail pratique pour construire et afficher des fichiers PDF professionnels dans l'application par défaut configurée sur la machine de l'utilisateur.

Comment installer IronPDF dans un projet .NET ?

Avant de générer ou d'ouvrir un fichier PDF, vous devez installer IronPDF dans votre projet. Utilisez soit la console du gestionnaire de packages NuGet , soit l'interface de ligne de commande .NET :

PM > Install-Package IronPdf

Après l'installation, ajoutez votre clé de licence ou commencez par un essai gratuit pour activer toutes les fonctionnalités. La documentation IronPDF couvre toutes les options de configuration en détail, y compris l'installation via NuGet.

Une fois installé, vous aurez accès à l'ensemble des fonctionnalités IronPDF , notamment la conversion HTML vers PDF, le rendu d'URL, la fusion de PDF, le marquage en filigrane, la signature numérique et bien plus encore.

Comment générer et ouvrir un fichier PDF ?

L'approche la plus simple implique trois étapes :

  1. Créer un document PDF avec IronPDF.
  2. Enregistrer le fichier dans un répertoire.
  3. Ouvrir le PDF dans l'application par défaut en utilisant Process.Start.

Voici un exemple complet et fonctionnel que vous pouvez essayer dans Visual Studio avec un nouveau projet d'application console :

using IronPdf;
using System.Diagnostics;

// Create a new PDF renderer
var renderer = new ChromePdfRenderer();

// Generate PDF from HTML content
var pdf = renderer.RenderHtmlAsPdf(@"
    <html>
        <body>
            <h1>Invoice #12345</h1>
            <p>Generated on: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
            <table>
                <tr><td>Product</td><td>Price</td></tr>
                <tr><td>IronPDF License</td><td>$299</td></tr>
            </table>
        </body>
    </html>");

// Save the PDF to a file
string outputPath = "invoice.pdf";
pdf.SaveAs(outputPath);

// Open the PDF in the default viewer
Process.Start(new ProcessStartInfo
{
    FileName = outputPath,
    UseShellExecute = true
});

Ce code crée d'abord une instance ChromePdfRenderer, qui est la classe principale d'IronPDF pour convertir HTML en PDF. La méthode RenderHtmlAsPdf convertit la chaîne HTML en un objet de document PDF. Pour en savoir plus sur cette approche, consultez le guide HTML-to-PDF d'IronPDF .

Après avoir enregistré le PDF en utilisant SaveAs, le code utilise Process.Start avec ProcessStartInfo pour ouvrir le fichier dans le lecteur PDF par défaut. Le réglage clé ici est UseShellExecute = true, qui indique à Windows d'ouvrir le fichier PDF avec son application par défaut.

Sortie

Comme le montre l'image ci-dessous, IronPDF génère avec succès le fichier PDF et l'affiche à l'aide du visualiseur par défaut configuré sur le système, en l'occurrence Opera GX.

Comment ouvrir des PDF dans le visionneur par défaut en C#: Figure 1 - PDF affiché en utilisant le visionneur par défaut

Pourquoi des déclarations de niveau supérieur ?

Avec .NET 10 et les versions modernes de C#, les instructions au niveau supérieur éliminent le besoin d'un wrapper de classe Program. Le code s'exécute directement en haut du fichier, ce qui rend les exemples plus courts et plus faciles à suivre. Tous les exemples de ce guide utilisent ce modèle.

Pourquoi l'option UseShellExecute est-elle importante lors de l'ouverture de documents PDF ?

Dans .NET Core et les versions modernes de .NET (.NET 5 jusqu'à .NET 10), le paramètre UseShellExecute a pour valeur par défaut false. Sans le définir explicitement sur true, votre application générera une erreur lors de la tentative de lancement d'un fichier PDF.

using IronPdf;
using System.Diagnostics;
using System.IO;

// Generate a report with IronPDF
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;

var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// Save to temp directory for immediate viewing
string tempPath = Path.Combine(Path.GetTempPath(), $"URL_{Guid.NewGuid()}.pdf");
pdf.SaveAs(tempPath);

// IMPORTANT: Set UseShellExecute = true for .NET Core/5+
var startInfo = new ProcessStartInfo
{
    FileName = tempPath,
    UseShellExecute = true  // Required in .NET Core/5+ to open PDF in default viewer
};
Process.Start(startInfo);

La propriété UseShellExecute détermine s'il faut utiliser le shell du système d'exploitation pour démarrer le processus. Lorsqu'il est configuré sur true, Windows utilise le registre d'association de fichiers pour déterminer quel lecteur de PDF par défaut doit ouvrir le fichier. Sans ce paramètre dans les versions modernes de .NET, vous rencontrerez une erreur d'exécution indiquant que le fichier ne peut pas être ouvert.

L'utilisation d'un répertoire temporaire avec un nom de fichier unique (via Guid.NewGuid()) prévient les conflits de fichiers lors de la génération de plusieurs PDF en succession rapide. Le dossier temporaire par défaut est nettoyé automatiquement par le système d'exploitation à intervalles réguliers.

Sortie

Comment ouvrir des PDF dans le visionneur par défaut en C#: Figure 2 - URL au PDF généré et affiché en utilisant le visionneur par défaut

Comment gérer correctement les chemins d'accès aux fichiers ?

Les chemins d'accès aux fichiers contenant des espaces et des caractères spéciaux nécessitent une manipulation soigneuse. Un répertoire manquant ou un chemin mal formé échouera silencieusement ou générera une exception avant d'arriver à Process.Start. Voici une approche qui inclut la création de répertoires et la vérification de l'existence des fichiers :

using IronPdf;
using System.Diagnostics;
using System.IO;

// Generate PDF from HTML file
var renderer = new ChromePdfRenderer();
var htmlContent = File.ReadAllText("template.html");
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Create output directory if it doesn't exist
string outputDir = @"C:\PDF Reports\Monthly";
Directory.CreateDirectory(outputDir);

// Build file path with timestamp
string fileName = $"Report_{DateTime.Now:yyyyMMdd_HHmmss}.pdf";
string fullPath = Path.Combine(outputDir, fileName);

// Save the PDF
pdf.SaveAs(fullPath);

// Verify file exists before opening in default PDF viewer
if (File.Exists(fullPath))
{
    Process.Start(new ProcessStartInfo
    {
        FileName = fullPath,
        UseShellExecute = true
    });
}
else
{
    Console.WriteLine($"Error: PDF file not found at {fullPath}");
}

Ce code démontre plusieurs bonnes pratiques : utiliser Path.Combine pour construire correctement les chemins de fichiers indépendamment du système d'exploitation, créer des répertoires si nécessaire avec Directory.CreateDirectory, et vérifier l'existence des fichiers avant de tenter d'ouvrir le PDF dans le visionneur par défaut.

Le horodatage dans le nom du fichier assure l'unicité et fournit un enregistrement clair du moment où chaque PDF a été généré. Pour des options avancées de manipulation de PDF telles que la fusion ou la division de PDF , l'ajout de filigranes , la signature numérique , ainsi que les en-têtes et pieds de page , consultez les guides pratiques d'IronPDF.

Qu'en est-il des chemins avec des espaces ?

Path.Combine gère correctement les espaces car il construit des chemins comme des chaînes au lieu de se fier à l'expansion du shell. La classe ProcessStartInfo gère également correctement les chemins entre guillemets lorsque UseShellExecute = true. Si vous devez passer un chemin d'accès directement à une commande shell, entourez-le toujours de guillemets doubles. Avec Process.Start, la propriété FileName ne nécessite pas de guillemets manuels.

Comment appliquer les meilleures pratiques prêtes pour la production ?

Pour les applications de production, envisagez un flux de travail plus complet qui gère le cycle de vie du PDF avec la gestion des erreurs, des options de rendu configurables et des répertoires de sortie prévisibles :

using IronPdf;
using IronPdf.Rendering;
using System.Diagnostics;
using System.IO;

static void GenerateAndDisplayPdf(string htmlContent, string documentName)
{
    try
    {
        // Configure IronPDF renderer with production settings
        var renderer = new ChromePdfRenderer
        {
            RenderingOptions = new ChromePdfRenderOptions
            {
                PaperSize = PdfPaperSize.A4,
                PrintHtmlBackgrounds = true,
                CreatePdfFormsFromHtml = true
            }
        };

        // Generate the PDF
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);

        // Use the user's Documents folder for better accessibility
        string documentsPath = Environment.GetFolderPath(
            Environment.SpecialFolder.MyDocuments);
        string pdfFolder = Path.Combine(documentsPath, "Generated PDFs");
        Directory.CreateDirectory(pdfFolder);
        string outputPath = Path.Combine(pdfFolder, $"{documentName}.pdf");

        pdf.SaveAs(outputPath);

        // Open PDF in default viewer without waiting for it to close
        Process.Start(new ProcessStartInfo
        {
            FileName = outputPath,
            UseShellExecute = true  // Essential for opening PDF in default application
        });

        Console.WriteLine($"PDF opened: {outputPath}");
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error generating or opening PDF: {ex.Message}");
    }
}

Cet exemple inclut une gestion structurée des erreurs et enregistre les fichiers PDF dans le dossier Documents de l'utilisateur, qui est accessible quelle que soit la manière dont l'application est lancée. Il configure également IronPDF avec des options de rendu adaptées aux documents commerciaux : format de papier A4, impression de fond HTML activée et création automatique de champs de formulaire à partir d'éléments de formulaire HTML.

Vous pouvez en savoir plus sur les formulaires PDF interactifs et les filigranes personnalisés dans la bibliothèque de didacticiels d'IronPDF.

Cette méthode ne nécessite pas la fermeture du visualiseur PDF, ce qui permet à votre application de continuer à fonctionner pendant que l'utilisateur consulte le document. D'après la documentation Microsoft sur Process.Start , cette approche garantit une gestion correcte des ressources et empêche votre application de se bloquer sur un processus de visualisation de longue durée. La documentation de référence de la classe ProcessStartInfo sur Microsoft Learn fournit une liste complète des propriétés que vous pouvez configurer, notamment le style de fenêtre, le verbe (ouvrir, imprimer) et le répertoire de travail.

Comment ouvrir des PDF dans le visionneur par défaut en C#: Figure 3 - Workflow du processus de génération à l'affichage de PDF

Configurer les options de rendu

La classe ChromePdfRenderOptions vous donne un contrôle granulaire sur le PDF de sortie. Les paramètres courants comprennent :

  • PaperSize -- Définir sur PdfPaperSize.A4, Letter, ou toute taille standard.
  • PrintHtmlBackgrounds -- Affiche les couleurs et les images d'arrière-plan à partir du code HTML.
  • CreatePdfFormsFromHtml -- Convertit les éléments HTML <input> et <select> en champs de formulaire PDF interactifs.
  • MarginTop / MarginBottom / MarginLeft / MarginRight -- Contrôle les marges de la page en millimètres.

Ces paramètres s'appliquent de la même manière, que vous affichiez des chaînes HTML, des fichiers HTML locaux ou des URL distantes.

Comment extraire des données à partir de fichiers PDF générés ?

Une fois le fichier PDF généré et ouvert, vous pourriez également avoir besoin de relire son contenu. IronPDF prend en charge l'extraction de texte à partir de fichiers PDF , ce qui est utile pour la journalisation, la vérification ou le traitement en aval.

Pour les documents contenant de nombreuses images, vous pouvez également utiliser la conversion PDF-image pour convertir les pages individuelles en fichiers PNG ou JPEG. Ceci est courant dans les flux de travail de génération d'aperçus et de vignettes.

Ces deux fonctionnalités sont disponibles via la même bibliothèque IronPDF et ne nécessitent aucune dépendance supplémentaire. La documentation complète de l'API IronPDF fournit des références au niveau des méthodes pour toutes les opérations d'extraction et de conversion.

Que se passe-t-il si aucun lecteur PDF n'est installé ?

Si aucun lecteur PDF n'est installé sur l'ordinateur cible, Windows affichera une boîte de dialogue demandant à l'utilisateur de sélectionner une application ou de se rendre sur le Microsoft Store pour en trouver une. Il s'agit d'un comportement standard de Windows et est hors du contrôle de Process.Start.

Pour gérer cela élégamment dans le code de production, vous pouvez intercepter l'Win32Exception que l'Process.Start génère lorsqu'aucun gestionnaire enregistré n'est trouvé pour l'extension de fichier .pdf :

using System.ComponentModel;
using System.Diagnostics;

try
{
    Process.Start(new ProcessStartInfo
    {
        FileName = outputPath,
        UseShellExecute = true
    });
}
catch (Win32Exception ex) when (ex.NativeErrorCode == 1155)
{
    // Error 1155: No application associated with the file extension
    Console.WriteLine("No PDF viewer is installed. Please install a PDF reader such as Adobe Acrobat Reader.");
}

Le code d'erreur 1155 correspond à ERROR_NO_ASSOCIATION, que Windows renvoie lorsqu'aucune application n'est enregistrée pour le type de fichier. La détection de cette erreur spécifique permet d'afficher un message utile au lieu de provoquer un plantage. La liste complète des codes d'erreur système Windows est documentée dans la référence des codes d'erreur Win32 sur Microsoft Learn.

Comment choisir la bonne approche pour votre application ?

La méthode que vous choisissez pour ouvrir un fichier PDF dépend du type d'application que vous développez :

Comparaison des stratégies d'ouverture de fichiers PDF pour différents types d'applications
Type d'applicationApproche recommandéeConsidération clé
application console ou de bureauProcess.Start avec UseShellExecute = trueSimple, sans dépendances supplémentaires
Service WindowsEnregistrer sur disque ; notifier l'utilisateur via IPC ou file d'attente de messagesLes services fonctionnent sans session de bureau
Application Web (ASP.NET)Lecture en continu du PDF sous forme de téléchargement ou directement dans le navigateurLa méthode Process.Start n'est pas valide dans le contexte d'un serveur web.
MAUI ou WinFormsProcess.Start ou contrôle PDF intégréL'affichage intégré offre une meilleure expérience au sein de l'application.

Pour les applications web créées avec ASP.NET Core, n'utilisez pas Process.Start. Le processus serveur s'exécute dans un environnement sans interface graphique et ne peut pas ouvrir d'applications de bureau. Au contraire, retournez le PDF comme un résultat de fichier en utilisant File() avec le type MIME application/pdf, et laissez le navigateur gérer l'affichage.

Pour les applications console et de bureau, Process.Start avec UseShellExecute = true reste l'option la plus simple et la plus fiable.

Veuillez noter: Remarque : Si aucun lecteur PDF n'est installé, Windows peut afficher une boîte de dialogue vous invitant à en sélectionner ou à en télécharger un.

Prêt à commencer la génération et la visualisation de PDF dans votre application .NET ? Commencez par un essai gratuit pour accéder à l'ensemble des fonctionnalités, ou consultez la page des licences IronPDF pour trouver le plan adapté à votre projet.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $