IRONSOFTWAREHOME
UTILISATION DE IRONPDF

Conversion de HTML en PDF avec IronPDF dans ASP.NET

Curtis Chau
Curtis Chau
Updated: 23 avril 2026

Créez une visionneuse PDF ASP.NET Core MVC utilisant le moteur de rendu IronPDF basé sur Chrome pour afficher les fichiers PDF directement dans les navigateurs, générer des PDF dynamiques à partir de contenu HTML et contrôler si les utilisateurs consultent ou téléchargent les documents, le tout sans plugins ni dépendances externes.

Les navigateurs modernes intègrent une visionneuse PDF qui s'active automatiquement lorsqu'une application web propose des fichiers PDF avec le bon type MIME. Les utilisateurs peuvent ainsi afficher des documents PDF directement dans leur navigateur, sans avoir à recourir à des outils ou à des plugins tiers. IronPDF , une bibliothèque PDF .NET dotée d'un moteur de rendu basé sur Chrome, simplifie la génération, le rendu et l'affichage de fichiers PDF dans les applications ASP.NET Core MVC.

Première étape :
arrow pointer

Comment installer IronPDF dans un projet ASP.NET Core MVC ?

Avant de créer une visionneuse PDF dans ASP.NET Core MVC, vous devez ajouter IronPDF à votre projet. La méthode la plus rapide consiste à utiliser le gestionnaire de packages NuGet dans Visual Studio, ou via la ligne de commande en utilisant l'interface de ligne de commande .NET ou la console du gestionnaire de packages.

PM > Install-Package IronPdf

Une fois le package installé, ajoutez le namespace IronPdf à vos fichiers de contrôleur et vous êtes prêt à commencer à générer et à servir des documents PDF. IronPDF cible .NET 8 et .NET 10, il fonctionne donc avec les dernières versions ASP.NET Core sans aucune configuration supplémentaire.

Pour les projets nécessitant une installation hors ligne ou le verrouillage d'une version spécifique, vous pouvez également télécharger directement le package NuGet et l'ajouter comme flux local. La page de licences IronPDF présente les options de licences d'essai et de production si vous en avez besoin avant la mise en ligne.

Comment les navigateurs modernes affichent-ils les fichiers PDF ?

Les navigateurs modernes tels que Chrome, Firefox, Edge et Safari intègrent une fonctionnalité native de visualisation des PDF. Lorsque votre application ASP.NET Core retourne un fichier avec le type de contenu application/pdf, le navigateur rend le document PDF en ligne sans nécessiter Adobe Acrobat ou des plugins externes. Cette visionneuse PDF intégrée prend en charge la sélection de texte, l'impression, le Zoom , les signets et la navigation entre les pages, offrant ainsi une expérience de visualisation de documents familière aux utilisateurs.

Pour servir en toute sécurité les fichiers existants, la meilleure pratique consiste à utiliser l'environnement d'hébergement pour les localiser plutôt que de s'appuyer sur des chemins d'accès aux répertoires qui peuvent changer entre le développement et la production. L'utilisation d'un flux de fichiers est également plus efficace en termes de mémoire que le chargement de tableaux d'octets entiers pour les documents volumineux.

using Microsoft.AspNetCore.Mvc;

public class DocumentController : Controller
{
    public IActionResult ViewPdf()
    {
        // Path to an existing PDF file in the wwwroot folder
        string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf");
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        // Return file for inline browser display
        return File(fileBytes, "application/pdf");
    }
}

À quoi ressemble un PDF lorsqu'il est affiché dans un navigateur ?

Un document PDF sur 'Qu'est-ce qu'un PDF?' affiché dans un navigateur web à localhost:7162/Pdf/ViewPdf, montrant le contenu textuel formaté dans une interface de visionneuse PDF avec des contrôles de zoom et des options de navigation

Le code ci-dessus lit un fichier PDF existant sur le serveur et le renvoie au navigateur. La méthode File() accepte un tableau d'octets et un type de contenu, instruisant le visionneur de documents du navigateur à rendre le contenu en ligne. Cette approche fonctionne sur tous les navigateurs modernes, sur les appareils de bureau et mobiles, offrant une expérience cohérente pour tous les utilisateurs.

Pour des scénarios plus avancés, vous pouvez charger les fichiers PDF depuis la mémoire ou Azure Blob Storage , ce qui peut améliorer l'évolutivité et réduire les besoins en stockage serveur. La documentation Microsoft relative à la diffusion de fichiers statiques dans ASP.NET Core couvre les bonnes pratiques de gestion des fichiers en production.

Comment générer des documents PDF de manière dynamique avec ASP.NET Core?

Les fichiers PDF statiques sont utiles, mais de nombreuses applications web nécessitent des documents générés dynamiquement adaptés à l'utilisateur ou à la requête actuelle. La classe ChromePdfRenderer d'IronPDF convertit le contenu HTML en fichiers PDF rendus professionnellement à l'aide d'un véritable moteur de navigateur Chromium en arrière-plan.

Vous pouvez inclure des ressources externes, telles que du CSS pour votre thème spécifique ou du JavaScript pour les graphiques , directement dans la chaîne HTML. Le moteur de rendu prend en charge les normes web modernes, notamment CSS3, JavaScript ES6+ et les polices web , de sorte que le PDF généré ressemble exactement à ce que le navigateur afficherait pour la même page HTML.

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with CSS styling
        string html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}

À quoi ressemble le contenu HTML après la génération du PDF ?

Visionneuse PDF affichant un rapport de ventes mensuelles avec un texte d'en-tête formaté et la date de génération, démontrant la conversion HTML en PDF avec un style CSS personnalisé appliqué via IronPDF

Cet exemple montre comment IronPDF transforme une chaîne HTML en document PDF . Le ChromePdfRenderer utilise un moteur basé sur Chromium, assurant un rendu CSS précis et un support JavaScript. Le PDF généré conserve toute la mise en forme définie dans le code HTML, ce qui le rend idéal pour la création de rapports , de factures et d'autres documents nécessitant une mise en forme cohérente.

Pour obtenir d'autres exemples de code sur la conversion HTML vers PDF , consultez la documentation d'IronPDF. Vous pouvez également générer des PDF à partir de vues CSHTML Razor , d'URL ou même de contenu Markdown .

Comment contrôler l'affichage en ligne par rapport au téléchargement de fichiers ?

Les utilisateurs ont parfois besoin de télécharger des fichiers PDF plutôt que de les afficher dans le navigateur. La façon dont le navigateur gère la réponse dépend de l'en-tête Content-Disposition. Comprendre cette distinction est important pour offrir une expérience utilisateur optimale dans votre application.

Lorsque vous omettez le paramètre de nom de fichier dans la méthode File(), ASP.NET Core ne définit pas un en-tête Content-Disposition, donc le navigateur utilise son comportement par défaut -- qui est généralement l'affichage en ligne. Lorsque vous fournissez un nom de fichier en tant que troisième paramètre, ASP.NET Core ajoute automatiquement Content-Disposition: attachment, incitant les utilisateurs à enregistrer le fichier à la place.

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 25;
        renderer.RenderingOptions.MarginBottom = 25;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Display PDF inline in browser -- no filename = inline
        return File(pdf.BinaryData, "application/pdf");
    }

    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
        renderer.RenderingOptions.EnableJavaScript = true;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}

Quand faut-il privilégier l'affichage en ligne au téléchargement ?

Capture d'écran montrant la page principale de Wikipedia convertie au format PDF et affichée en ligne dans une fenêtre de navigateur avec des contrôles de visionneuse PDF, y compris le zoom, la navigation des pages et les options d'impression

La différence entre les deux actions de contrôleur réside dans ce troisième paramètre de File(). Cette flexibilité permet à votre application de prendre en charge les deux scénarios, en fonction des besoins des utilisateurs ou des exigences de l'entreprise. Pour un contrôle accru, vous pouvez également définir des en-têtes HTTP personnalisés ou configurer les paramètres de format et d'orientation du papier avant le rendu.

Certaines applications combinent les deux approches : un point de terminaison de prévisualisation qui affiche le PDF directement dans le document, et un point de terminaison de téléchargement distinct qui déclenche l'enregistrement du fichier. Ce modèle permet aux utilisateurs de visualiser le document avant de le télécharger.

Comment intégrer Razor Pages à la génération de PDF ?

Les pages Razor dans ASP.NET Core MVC offrent une autre approche pour implémenter une visionneuse PDF .NET . Le modèle de page peut générer et renvoyer des fichiers PDF en utilisant la même fonctionnalité IronPDF disponible dans les contrôleurs MVC standard. Ce modèle convient parfaitement aux applications utilisant déjà Razor Pages, car il permet de conserver la logique de génération de PDF au même endroit que la page qui la déclenche.

Le gestionnaire OnGet dans une page Razor agit comme une action de contrôleur -- il reçoit la requête, effectue le travail et retourne un résultat. Retourner un FileResult à partir d'un modèle de page est pris en charge par ASP.NET Core et fonctionne de la même manière que de retourner File() à partir d'un contrôleur.

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;

        string html = $@"
            <html>
            <head>
                <style>
                    body {{font-family: 'Segoe UI', Arial, sans-serif; padding: 40px;}}
                    h1 {{color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px;}}
                    .invoice-details {{margin: 20px 0;}}
                    table {{width: 100%; border-collapse: collapse;}}
                    th, td {{padding: 10px; text-align: left; border-bottom: 1px solid #ddd;}}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>Thank you for your business!</p>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
C#

Quelles sont les options de rendu disponibles pour la personnalisation des PDF ?

Visionneuse PDF affichant la facture #20 avec un formatage professionnel, y compris des en-têtes stylisés, des informations sur la date d'échéance et un message de remerciement dans une interface de navigateur à thème sombre

Cet exemple de Razor Pages démontre comment le gestionnaire OnGet génère un PDF à partir d'un paramètre URL. La propriété RenderingOptions permet un contrôle précis sur les marges, l'orientation de la page, et d'autres paramètres de mise en page. Vous pouvez également ajouter des en-têtes et des pieds de page , configurer la numérotation des pages ou définir des formats de papier personnalisés .

Les fonctionnalités avancées disponibles via RenderingOptions incluent le filigrane, la compression PDF, et les signatures numériques. Pour plus de détails sur chaque option disponible, consultez la référence des options de rendu IronPDF .

Comment gérez-vous la sécurité et le contrôle d'accès des fichiers PDF ?

Les applications de production doivent souvent limiter les personnes autorisées à consulter ou à modifier un document PDF. IronPDF offre une prise en charge intégrée des mots de passe et des autorisations PDF , vous permettant de chiffrer les documents, d'exiger un mot de passe pour les ouvrir ou de restreindre l'impression et la copie.

Vous pouvez appliquer des paramètres de sécurité à n'importe quel objet PdfDocument avant de le retourner à partir de votre contrôleur. Cette approche fonctionne que le PDF ait été généré à partir de HTML, chargé depuis un disque ou récupéré d'une base de données.

Options de sécurité PDF courantes disponibles dans IronPDF
Fonctionnalité de sécuritéPropriété IronPDFCas d'utilisation
Mot de passe du propriétaireOwnerPasswordEmpêcher les modifications d'autorisation non autorisées
Mot de passe utilisateurUserPasswordUn mot de passe est requis pour ouvrir le document.
Désactiver l'impressionAllowUserPrintingEmpêcher les destinataires d'imprimer le fichier
Désactiver la copieAllowUserCopyPasteContentExtraction de texte par blocs à partir d'un PDF
Signature numériquePdfSignatureVérifier l'authenticité du document

Pour les documents sensibles tels que les contrats, les états financiers ou les dossiers médicaux, l'association d'un mot de passe utilisateur et de permissions restreintes permet un contrôle précis des actions autorisées aux destinataires. Le mode de conformité PDF/A est une autre option intéressante pour l'archivage à long terme, où l'intégrité des documents doit être préservée pendant des décennies.

Comment optimiser les performances de génération de PDF ?

La génération de PDF sollicite le processeur et la mémoire, les performances sont donc importantes dans les applications à fort trafic. L' API de rendu asynchrone d' IronPDF permet de décharger la création des PDF sur un thread d'arrière-plan sans bloquer le pipeline de requêtes. Ceci est particulièrement utile lors de la génération de plusieurs PDF dans une seule requête ou du traitement par lots.

Pour les déploiements en production sur Linux ou dans des conteneurs Docker, IronPDF prend en charge l'exécution multiplateforme sans nécessiter de dépendances spécifiques à Windows. Le guide d'installation d' IronPDF pour Linux et le guide de configuration Docker décrivent les étapes d'installation. Le projet Mozilla PDF.js et les visionneuses natives des navigateurs sont tous deux compatibles avec tous les PDF produits par IronPDF , vous offrant ainsi une grande flexibilité d'affichage.

Quelques pratiques permettant d'améliorer le rendement en production :

  • Réutilisez les instances ChromePdfRenderer lorsque cela est possible au lieu de créer une nouvelle à chaque requête, puisque l'initialisation du rendu comporte une surcharge.
  • Utilisez des méthodes asynchrones telles que RenderHtmlAsPdfAsync pour libérer le thread pendant que le moteur Chromium rend.
  • Mettre en cache les fichiers PDF générés à l'aide d'IMemoryCache ou d'un cache distribué lorsque le même document est demandé à plusieurs reprises.
  • Pour les documents très volumineux, envisagez de diffuser la sortie en continu plutôt que de mettre en mémoire tampon l'intégralité du tableau d'octets.

Comment fonctionne le rendu asynchrone en pratique ?

L'API asynchrone reflète la version synchrone mais retourne un Task<PdfDocument>. Vous attendez le résultat à l'intérieur d'une action de contrôleur async, gardant le pool de threads libre pour gérer d'autres requêtes entrantes pendant que le rendu se poursuit. Le passage du rendu synchrone au rendu asynchrone dans un scénario de charge élevée réduit généralement la contention des threads et améliore les temps de réponse globaux sous charge simultanée.

Quelles sont vos prochaines étapes ?

La création d'une visionneuse PDF en ASP.NET Core MVC combine les capacités d'affichage natives du navigateur avec les fonctionnalités de génération d'IronPDF. Le visualiseur PDF intégré aux navigateurs modernes gère automatiquement l'affichage, l'impression et la navigation lorsque votre contrôleur ASP.NET renvoie des fichiers avec le type MIME correct. IronPDF gère la partie génération : il convertit les fichiers HTML, les URL ou les fichiers existants en documents PDF bien formatés, avec une prise en charge complète des CSS, JavaScript, des en-têtes, des pieds de page et des paramètres de sécurité.

Principales fonctionnalités abordées dans ce guide :

  • Servir des fichiers PDF existants en ligne en utilisant la méthode File() avec le type MIME application/pdf
  • Générer des PDF dynamiques à partir de chaînes HTML en utilisant ChromePdfRenderer
  • Contrôler l'affichage en ligne par rapport au téléchargement de fichier via l'en-tête Content-Disposition
  • Ajouter des en-têtes, pieds de page, marges et paramètres de sécurité via RenderingOptions
  • Utilisation de Razor Pages comme alternative aux contrôleurs MVC pour la génération de PDF
  • Appliquer la protection par mot de passe et les restrictions d'autorisation aux documents sensibles
  • Amélioration des performances grâce au rendu asynchrone et à la mise en cache des réponses

À partir d'ici, vous pouvez explorer des flux de travail plus avancés tels que la fusion de plusieurs PDF , la création de formulaires remplissables ou la génération de PDF à partir de vues CSHTML Razor . La documentation IronPDF couvre toutes les fonctionnalités avec des exemples de code fonctionnels.

Démarrez votre essai gratuit pour découvrir toutes les fonctionnalités d'IronPDF, ou achetez une licence pour une utilisation en production.

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.

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

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