Passer au contenu du pied de page
UTILISATION DE IRONPDF

Construire une visionneuse de PDF en ASP.NET Core MVC | Tutoriel

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.

Commencez avec IronPDF maintenant.
green 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.

Install-Package IronPdf
dotnet add package IronPdf
Install-Package IronPdf
dotnet add package IronPdf
SHELL

Une fois le package installé, ajoutez l'espace de noms 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 renvoie un fichier avec le type de contenu application/pdf, le navigateur affiche le document PDF directement dans le navigateur sans nécessiter Adobe Acrobat ni 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");
    }
}
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");
    }
}
Imports Microsoft.AspNetCore.Mvc

Public Class DocumentController
    Inherits Controller

    Public Function ViewPdf() As IActionResult
        ' Path to an existing PDF file in the wwwroot folder
        Dim path As String = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf")
        Dim fileBytes As Byte() = System.IO.File.ReadAllBytes(path)
        ' Return file for inline browser display
        Return File(fileBytes, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

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

Un document PDF intitulé

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, et indique au visualiseur de documents du navigateur d'afficher le contenu directement dans le code. Cette approche est compatible avec tous les navigateurs modernes, sur ordinateur comme sur appareils mobiles, et garantit une expérience utilisateur homogène.

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 et adaptés à l'utilisateur ou à la requête. La classe IronPDF (ChromePdfRenderer) convertit le contenu HTML en fichiers PDF de qualité professionnelle grâce à un véritable moteur de rendu Chromium.

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");
    }
}
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");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class ReportController
    Inherits Controller

    Public Function GenerateReport() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        ' HTML content with CSS styling
        Dim html As String = "
            <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>"

        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

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

Visionneuse PDF affichant un rapport des ventes mensuelles avec en-tête formaté et date de génération, illustrant la conversion HTML vers PDF avec 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, garantissant un rendu CSS précis et une prise en charge 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 traite 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 filename dans la méthode File(), ASP.NET Core ne définit pas d'en-tête Content-Disposition, le navigateur utilise donc son comportement par défaut, qui est généralement un affichage en ligne. Lorsque vous fournissez un nom de fichier comme troisième paramètre, ASP.NET Core ajoute automatiquement Content-Disposition: attachment, invitant ainsi les utilisateurs à enregistrer le fichier.

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");
    }
}
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");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class PdfController
    Inherits Controller

    Public Function DisplayInline() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        renderer.RenderingOptions.MarginTop = 25
        renderer.RenderingOptions.MarginBottom = 25

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        ' Display PDF inline in browser -- no filename = inline
        Return File(pdf.BinaryData, "application/pdf")
    End Function

    Public Function DownloadPdf() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter
        renderer.RenderingOptions.EnableJavaScript = True

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        ' Prompt download with specified filename
        Return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

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

Capture d'écran montrant la page d'accueil de Wikipédia convertie au format PDF et affichée directement dans une fenêtre de navigateur avec les commandes de visualisation PDF

La différence entre les deux actions du contrôleur se résume à ce troisième paramètre dans 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 un travail et renvoie un résultat. Le retour d'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 le retour d'un 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");
    }
}
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");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages

Public Class InvoiceModel
    Inherits PageModel

    Public Function OnGet(id As Integer) As IActionResult
        Dim 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

        Dim html As String = $"
            <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>"

        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

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

Visionneuse PDF affichant la facture n° 20 avec une mise en page Professional, incluant des en-têtes stylisés, la date d'échéance et un message de remerciement

Cet exemple Razor Pages démontre comment le gestionnaire OnGet génère un PDF à partir d'un paramètre d'URL. La propriété RenderingOptions permet un contrôle précis des marges , de 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 renvoyer depuis 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é IronPDF Cas d'utilisation
Mot de passe du propriétaire `OwnerPassword` Empêcher les modifications d'autorisation non autorisées
Mot de passe utilisateur `UserPassword` Un mot de passe est requis pour ouvrir le document.
Désactiver l'impression `AllowUserPrinting` Empêcher les destinataires d'imprimer le fichier
Désactiver la copie `AllowUserCopyPasteContent` Extraction de texte par blocs à partir d'un PDF
Signature numérique `PdfSignature` Vé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 plutôt que d'en créer une nouvelle par requête, car l'initialisation du moteur de rendu entraîne une certaine surcharge.
  • Utilisez des méthodes asynchrones telles que RenderHtmlAsPdfAsync pour libérer le thread pendant que le moteur Chromium effectue le rendu.
  • 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 renvoie un Task<PdfDocument>. Vous attendez le résultat dans une action de contrôleur async, gardant le pool de threads libre pour traiter 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 :

  • Service de fichiers PDF existants en ligne à l'aide de 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ôle de l'affichage en ligne par rapport au téléchargement de fichiers via l'en-tête Content-Disposition
  • Ajout d'en-têtes, de pieds de page, de marges et de 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.

Questions Fréquemment Posées

Comment puis-je afficher des fichiers PDF dans des applications ASP.NET Core MVC ?

Vous pouvez afficher des fichiers PDF dans des applications ASP.NET Core MVC en using IronPDF. Il vous permet de générer, de rendre et d'afficher des fichiers PDF directement dans le navigateur à l'aide des visionneuses PDF modernes intégrées.

Ai-je besoin de plugins tiers pour visualiser les PDF dans un navigateur ?

Non, les navigateurs modernes ont des visionneurs PDF intégrés qui s'activent automatiquement lorsqu'ils servent des fichiers PDF avec le bon type MIME. IronPDF peut vous aider à vous assurer que vos PDF sont servis correctement.

Quel est l'avantage d'utiliser IronPDF pour ASP.NET Core MVC ?

IronPDF est une bibliothèque PDF .NET qui simplifie le processus de génération et de rendu des documents PDF au sein des applications ASP.NET Core MVC, en améliorant la productivité et en rationalisant la gestion des PDF.

IronPDF peut-il fonctionner avec les visionneuses de PDF des navigateurs existants ?

Oui, IronPDF fonctionne de manière transparente avec les visionneuses de PDF des navigateurs existants en veillant à ce que les PDF soient servis avec le bon type MIME pour un affichage automatique dans le navigateur.

IronPDF est-il fréquemment mis à jour ?

Oui, IronPDF est une bibliothèque PDF .NET fréquemment mise à jour, offrant les dernières fonctionnalités et améliorations pour le traitement des documents PDF dans les applications ASP.NET Core MVC.

Comment IronPDF gère-t-il la génération de PDF dans les applications web ?

IronPDF offre des fonctionnalités robustes pour générer des PDF à partir de différents types de contenu, permettant aux développeurs de créer des documents PDF dynamiques et interactifs au sein d'applications web.

Quel type MIME doit-on utiliser pour les fichiers PDF ?

Pour garantir un affichage correct dans les navigateurs, les fichiers PDF doivent être servis avec le type MIME " application/pdf ". IronPDF peut vous aider à gérer efficacement cet aspect.

Puis-je personnaliser le rendu des PDF dans IronPDF ?

Oui, IronPDF offre des options de personnalisation étendues pour le rendu des PDF, ce qui vous permet d'adapter le résultat à des exigences spécifiques en matière de conception et de fonctionnalité.

IronPDF prend-il en charge uniquement les applications ASP.NET Core MVC ?

Si IronPDF est excellent pour les applications ASP.NET Core MVC, il est également polyvalent et peut être utilisé avec d'autres applications .NET pour gérer les fonctionnalités PDF.

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

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi