Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment ouvrir les PDFs dans le visualiseur par défaut en C#

Ouvrir un PDF dans le visualiseur par défaut est une tâche courante. Vous aurez souvent besoin de cela lors de la génération de PDF dans une application .NET. Après avoir créé et édité des fichiers PDF de manière programmatique avec IronPDF, vous devez souvent les afficher immédiatement aux utilisateurs dans leur application par défaut choisie (comme Adobe Acrobat ou Microsoft Edge). Ce guide vous guidera à travers les étapes pour générer des fichiers PDF avec IronPDF et comment ils peuvent être automatiquement ouverts sous Windows en utilisant System.Diagnostics.Process.Start.

La combinaison des puissantes capacités de conversion HTML en PDF d'IronPDF avec la méthode simple de lancement de Process crée un flux de travail transparent pour créer et afficher des fichiers PDF professionnels dans les paramètres de vos applications par défaut.

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

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 de l'utilisateur.

Voici un exemple complet 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>$799</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
});
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>$799</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
});
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce code crée d'abord une instance ChromePdfRenderer, qui est la classe principale d'IronPDF pour convertir du HTML en PDF. La méthode RenderHtmlAsPdf convertit la chaîne HTML en un objet document PDF.

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

Sortie

Comme vous pouvez le voir dans l'image ci-dessous, IronPDF a pu générer avec succès le fichier PDF et l'afficher en utilisant le visualiseur par défaut. Vous remarquerez dans mon cas, il s'agit d'Opera GX.

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

Pourquoi UseShellExecute est-il important lors de l'ouverture de documents PDF ?

Dans .NET Core et les versions modernes de .NET, le paramètre UseShellExecute est par défaut à false. Sans le définir explicitement à true, votre application lancera une erreur en essayant de démarrer un 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);
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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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 défini 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 indiquant que le fichier ne peut pas être ouvert. Utiliser un répertoire temporaire avec un nom de fichier unique (via Guid.NewGuid()) évite les conflits de fichier lors de la génération de plusieurs PDF. Pour plus de détails sur le rendu des URLs en PDF, consultez la documentation d'IronPDF.

Sortie

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

Comment gérer correctement les chemins de fichiers ?

Les chemins de fichiers avec des espaces et des caractères spéciaux nécessitent une gestion appropriée. Voici une approche robuste qui inclut la vérification des erreurs :

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}");
}
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}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce code montre plusieurs pratiques exemplaires : utiliser Path.Combine pour construire correctement les chemins de fichiers quel que soit le système d'exploitation, créer des répertoires au besoin avec Directory.CreateDirectory, et vérifier l'existence du fichier avant de tenter d'ouvrir le PDF dans le visualiseur 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 de manipulation avancée des PDF, explorez les capacités d'édition d'IronPDF.

Quelles sont les meilleures pratiques pour ouvrir des PDF générés ?

Pour les applications de production, envisagez de mettre en œuvre un flux de travail plus complet qui gère correctement le cycle de vie des PDF :

using IronPdf;
using IronPdf.Rendering;
using System.Diagnostics;
using System.IO;
public 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 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 and don't wait for it to close
        var process = 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}");
    }
}
using IronPdf;
using IronPdf.Rendering;
using System.Diagnostics;
using System.IO;
public 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 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 and don't wait for it to close
        var process = 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}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet exemple inclut la gestion des erreurs et enregistre les PDF dans le dossier Documents de l'utilisateur, ce qui fonctionne mieux dans les applications du monde réel. Il configure également IronPDF avec les options de rendu appropriées pour donner à vos documents PDF un aspect véritablement personnalisé lorsque vous les rendez.

La méthode ne attend pas que le visualiseur de PDF se ferme, permettant à votre application de continuer à fonctionner pendant que l'utilisateur consulte le document. Selon la documentation de Microsoft sur Process.Start, cette approche garantit une gestion appropriée des ressources.

Comment ouvrir des PDF dans le visualiseur par défaut en C# : Figure 3 - Génération des PDF au flux de travail d'affichage

Conclusion

Ouvrir un fichier PDF dans l'application par défaut à partir d'un programme .NET est facile avec IronPDF et System.Diagnostics.Process. En définissant les paramètres corrects (UseShellExecute = true) et en fournissant un chemin valide, votre projet .NET lancera avec succès le PDF dans le lecteur PDF par défaut.

Que vous travailliez dans Visual Studio, construisiez un exe de bureau Windows, ou expérimentiez avec une application web, cette approche fonctionne de manière cohérente. IronPDF gère la création de PDF, tandis que Windows gère l'aperçu et l'affichage via l'application par défaut installée sur l'ordinateur.

Veuillez noterNote : Si aucun visualiseur de PDF n'est installé, Windows pourrait afficher une boîte de dialogue vous demandant d'en sélectionner ou d'en télécharger un.

Ce tutoriel offre une solution et un code complets pour gérer les fichiers PDF dans vos applications .NET, couvrant la création et la visualisation sans la nécessité de logiciels ou de dépendances supplémentaires au-delà d'IronPDF et du runtime standard Microsoft .NET.

Prêt à mettre en œuvre la génération et la visualisation de PDF dans votre application ? Commencez avec un essai gratuit pour trouver la solution qui vous convient le mieux.

Questions Fréquemment Posées

Comment puis-je ouvrir un PDF dans le visionneur par défaut en utilisant C# ?

Vous pouvez ouvrir un PDF dans le visionneur par défaut en C# en utilisant IronPDF pour générer le PDF et System.Diagnostics.Process.Start pour l'ouvrir dans l'application PDF par défaut de l'utilisateur.

Qu'est-ce que IronPDF ?

IronPDF est une bibliothèque .NET qui permet aux développeurs de créer, éditer et manipuler des fichiers PDF de manière programmatique dans leurs applications.

Quelles sont les exigences système pour utiliser IronPDF ?

IronPDF est compatible avec toute application .NET et fonctionne sur les plateformes Windows, macOS et Linux. Il nécessite que .NET Framework ou .NET Core/5+ soit installé.

IronPDF peut-il ouvrir des PDF dans Adobe Acrobat par défaut ?

Oui, IronPDF peut générer des PDF qui sont ouverts dans le visionneur PDF par défaut défini par l'utilisateur, qui peut être Adobe Acrobat, Microsoft Edge, ou toute autre application de visualisation de PDF.

Comment System.Diagnostics.Process.Start fonctionne-t-il avec IronPDF ?

System.Diagnostics.Process.Start est utilisé pour ouvrir le fichier PDF généré dans le visionneur par défaut. Une fois qu'IronPDF crée le fichier, cette méthode lance l'application par défaut associée aux fichiers PDF pour l'afficher.

Est-il possible de modifier des fichiers PDF avec IronPDF ?

Oui, IronPDF vous permet de modifier des fichiers PDF existants en ajoutant du texte, des images, des annotations, et plus encore avant de les sauvegarder ou de les afficher.

Quels langages de programmation sont supportés par IronPDF ?

IronPDF est principalement utilisé avec C#, mais il peut également être intégré dans des projets utilisant VB.NET et d'autres langages supportés par .NET.

IronPDF peut-il automatiser l'affichage des PDF après leur génération ?

Oui, après avoir généré un PDF avec IronPDF, vous pouvez automatiser son affichage en utilisant System.Diagnostics.Process.Start pour l'ouvrir immédiatement dans le visionneur par défaut de l'utilisateur.

Existe-t-il des exemples de code disponibles pour l'utilisation d'IronPDF ?

La documentation d'IronPDF fournit divers exemples de code pour générer et manipuler des PDF, y compris comment les ouvrir dans le visionneur par défaut en utilisant C#.

Quels sont les cas d'utilisation courants d'IronPDF ?

Les cas d'utilisation courants pour IronPDF incluent la génération de rapports, de factures et d'autres documents, la conversion HTML en PDF, et l'automatisation du processus d'affichage de PDF dans les applications .NET.

IronPDF est-il compatible avec .NET 10 et quels avantages cela apporte-t-il ?

Oui. IronPDF est entièrement compatible avec .NET 10, y compris ses améliorations d'exécution et de langage. L'utilisation d'IronPDF avec .NET 10 permet à vos applications de bénéficier de performances accrues, telles qu'une réduction de l'allocation de mémoire, une génération de PDF plus rapide et une intégration plus fluide avec les API et plateformes modernes.

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 ...

Lire la suite