Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment créer un visualiseur de PDF dans ASP.NET Core

Créer une application web en .NET nécessite souvent d'afficher des documents PDF directement dans le navigateur. Qu'il s'agisse de factures, de rapports ou de formulaires PDF interactifs, les utilisateurs finaux s'attendent à une expérience de visualisation de documents fluide sans avoir besoin d'Adobe Acrobat Reader ou d'autres outils de navigateur tiers.

Dans ce tutoriel, nous vous montrerons comment implémenter un visionneuse PDF pour ASP.NET et .NET Core en utilisant IronPDF. Ce contrôle de visionneuse PDF robuste permet aux développeurs de créer, rendre et afficher des fichiers PDF au sein de leurs applications .NET, offrant une solution professionnelle pour gérer les documents essentiels.

Comment fonctionne la visualisation PDF dans ASP.NET Core ?

Les navigateurs modernes agissent comme un visionneur PDF intégré. Lorsque vous servez un fichier PDF avec le bon type MIME (application/pdf), le navigateur l'affiche automatiquement en ligne. Cela signifie que vous n'avez pas besoin de plugins externes pour visualiser des documents PDF ou afficher des fichiers PDF. La clé réside dans la génération de fichiers PDF de haute qualité et la configuration correcte des en-têtes de réponse.

IronPDF est une bibliothèque PDF .NET fréquemment mise à jour, qui excelle à créer des pages PDF parfaites à partir de HTML, de vues Razor ou de documents existants. Son rendu basé sur Chrome garantit un support précis du CSS, de JavaScript et des images, offrant à vos utilisateurs finaux une expérience de visualisation similaire à un visionneur PDF de bureau.

Configuration de votre projet ASP.NET Core

Commencez par créer une nouvelle application MVC ASP.NET Core :

dotnet new mvc -n PdfViewerApp
cd PdfViewerApp

Cela mettra en place une application .NET de base avec support MVC. Vous pouvez ensuite installer les packages NuGet IronPDF nécessaires pour le traitement et le rendu PDF.

Comment installer et configurer IronPDF ?

L'installation d'IronPDF ne prend que quelques étapes. Ouvrez la Console du Gestionnaire de Packages dans Visual Studio et exécutez ce qui suit :

Install-Package IronPdf

Ou en utilisant l'interface de ligne de commande .NET :

dotnet add package IronPdf

Configurez IronPDF dans votre Program.cs ou Startup.cs :

// Add this at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Use your trial or commercial key
// Add this at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Use your trial or commercial key
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Une fois installé, configurez votre clé de licence dans Program.cs. La documentation d'IronPDF fournit des informations supplémentaires et des exemples de configuration.

Comment générer des PDF pour la visualisation ?

IronPDF vous permet de créer des fichiers PDF à partir de HTML brut, de pages web ou de vues Razor. Le document PDF généré peut ensuite être affiché en ligne avec seulement quelques lignes de code source C#. Par exemple, en utilisant un ChromePdfRenderer, vous pouvez rendre du HTML et le renvoyer au navigateur sous forme de fichier PDF qui s'affiche dans votre contrôle de visionneuse PDF ASP.NET.

Cette approche évite de forcer un téléchargement, permettant aux utilisateurs de visualiser, imprimer, rechercher et enregistrer des PDF directement dans votre formulaire web ou projet Blazor.

Créer des PDF à partir de chaînes HTML

L'approche la plus simple convertit du HTML directement en PDF :

using IronPdf;
public class PdfController : Controller
{
    public IActionResult GenerateFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Create PDF from HTML
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial; padding: 20px; }
                    h1 { color: #333; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p>This PDF was generated using IronPDF in ASP.NET Core.</p>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF to browser for viewing
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
public class PdfController : Controller
{
    public IActionResult GenerateFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Create PDF from HTML
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial; padding: 20px; }
                    h1 { color: #333; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p>This PDF was generated using IronPDF in ASP.NET Core.</p>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF to browser for viewing
        return File(pdf.BinaryData, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet exemple montre comment générer un PDF directement à partir d'une chaîne HTML. Un ChromePdfRenderer est créé, qui utilise Chromium pour un rendu précis. Le HTML (avec CSS en ligne) est passé à RenderHtmlAsPdf, produisant un PdfDocument. Le retour du fichier avec le type MIME application/pdf garantit que le navigateur l'affiche en ligne. C'est utile pour générer des rapports ou des factures dynamiques dans ASP.NET Core.

Générer des PDFs depuis des URLs

Convertir des pages web existantes en PDF :

public IActionResult GenerateFromUrl(string url = "https://ironpdf.com")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.WaitFor.JavaScript(3000);
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    var pdf = renderer.RenderUrlAsPdf(url);
    Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf");
    return File(pdf.BinaryData, "application/pdf");
}
public IActionResult GenerateFromUrl(string url = "https://ironpdf.com")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    renderer.RenderingOptions.WaitFor.JavaScript(3000);
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    var pdf = renderer.RenderUrlAsPdf(url);
    Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf");
    return File(pdf.BinaryData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ici, IronPDF convertit une page web active en PDF. La méthode RenderUrlAsPdf récupère la page, applique les styles et scripts, et produit un PDF soigné. Définir l'en-tête Content-Disposition sur inline fait que le fichier s'ouvre dans le lecteur PDF du navigateur. C'est idéal pour archiver ou partager du contenu web sous forme de document PDF.

Sortie

Comment créer un visionneur PDF dans ASP.NET Core : Figure 2 - Sortie URL vers PDF affichée dans le visionneur PDF

Conversion des vues Razor en PDF

Transformez vos vues Razor en PDF dynamiquement :

public async Task<IActionResult> ViewToPdf()
{
    // Render the view to HTML string first
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
        var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);
        return sw.ToString();
    }
}
public async Task<IActionResult> ViewToPdf()
{
    // Render the view to HTML string first
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
        var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
        viewResult.View.Render(viewContext, sw);
        return sw.ToString();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet extrait transforme les vues Razor en PDF. La vue est d'abord rendue en une chaîne HTML avec RenderViewToString, puis convertie en utilisant RenderHtmlAsPdf. Le résultat est retourné sous forme de fichier visualisable dans le navigateur. Cela vous permet de réutiliser les modèles Razor (comme les factures) pour l'affichage web et la génération de PDF, garantissant la cohérence.

Comment afficher des PDF dans le navigateur ?

La clé pour afficher des PDF en ligne (plutôt que de les télécharger) réside dans la définition des en-têtes de réponse corrects.

Affichage en ligne de base

public IActionResult ViewPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
    Response.Headers.Add("Content-Disposition", "inline");
    return File(pdf.BinaryData, "application/pdf");
}
public IActionResult ViewPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
    Response.Headers.Add("Content-Disposition", "inline");
    return File(pdf.BinaryData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cet exemple force un PDF à s'afficher en ligne au lieu d'être téléchargé. Une simple chaîne HTML est convertie avec RenderHtmlAsPdf, et l'en-tête Content-Disposition est défini sur inline. C'est un moyen rapide de prévisualiser des fichiers PDF générés directement dans le navigateur.

Sortie

Comment créer un visionneur PDF dans ASP.NET Core : Figure 3 - Exemple simple de visionneur PDF en ligne

Chargement dynamique de PDF

Chargez différents PDF sans rafraîchissement de page :

[HttpGet]
public IActionResult GetPdfList()
{
    var pdfs = new List<object>
    {
        new { id = 1, name = "Report 1" },
        new { id = 2, name = "Report 2" }
    };
    return Json(pdfs);
}
[HttpGet]
public IActionResult GetPdf(int id)
{
    var renderer = new ChromePdfRenderer();
    var html = $"<h1>Report {id}</h1><p>Content for report {id}</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    return File(pdf.BinaryData, "application/pdf");
}
// Load PDF dynamically
function loadPdf(pdfId) {
    const frame = document.getElementById('pdfFrame');
    frame.src = `/Pdf/GetPdf?id=${pdfId}`;
}
[HttpGet]
public IActionResult GetPdfList()
{
    var pdfs = new List<object>
    {
        new { id = 1, name = "Report 1" },
        new { id = 2, name = "Report 2" }
    };
    return Json(pdfs);
}
[HttpGet]
public IActionResult GetPdf(int id)
{
    var renderer = new ChromePdfRenderer();
    var html = $"<h1>Report {id}</h1><p>Content for report {id}</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    return File(pdf.BinaryData, "application/pdf");
}
// Load PDF dynamically
function loadPdf(pdfId) {
    const frame = document.getElementById('pdfFrame');
    frame.src = `/Pdf/GetPdf?id=${pdfId}`;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce code charge dynamiquement différents PDF dans le visionneur. Le contrôleur fournit une liste de PDF et les génère à la demande. La fonction JavaScript loadPdf met à jour la source de l'<iframe> sans recharger la page, permettant un basculement rapide entre les documents.

Qu'en est-il des considérations de déploiement ?

IronPDF fonctionne sur les projets ASP.NET, ASP.NET Core et Blazor Server. Vous pouvez héberger sur un serveur, déployer sur Azure, ou conteneuriser avec Docker. Étant une bibliothèque fréquemment mise à jour avec un support actif, vous pouvez compter sur elle pour le traitement de documents de niveau entreprise.

Déploiement Azure

Lors du déploiement sur Azure App Service, IronPDF fonctionne parfaitement avec une configuration minimale. Assurez-vous que votre plan App Service est au moins de niveau B1 pour des performances optimales. IronPDF gère automatiquement le déploiement du moteur de rendu Chrome. Veuillez consulter ici pour notre documentation sur le choix du bon niveau Azure.

Support Docker

Pour les déploiements conteneurisés, IronPDF fournit un support Docker. Ajoutez ceci à votre Dockerfile :

# Install IronPDF dependencies
RUN apt-get update && apt-get install -y libgdiplus

Conseils de performance

  • Mettez en cache les PDF générés lorsque le contenu ne change pas fréquemment
  • Utilisez des méthodes asynchrones pour une meilleure évolutivité
  • Définitions de délais appropriés pour une génération de PDF complexe

Problèmes courants et solutions

PDF ne s'affichant pas en ligne

Si les PDF se téléchargent au lieu de s'afficher :

// Ensure Content-Disposition is set correctly
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
// Ensure Content-Disposition is set correctly
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Problèmes de Cross-Origin

Lors du chargement de PDF depuis différents domaines :

// Add CORS headers if needed
Response.Headers.Add("Access-Control-Allow-Origin", "*");
// Add CORS headers if needed
Response.Headers.Add("Access-Control-Allow-Origin", "*");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Fichiers PDF volumineux

Pour les documents volumineux, envisagez le streaming :

public async Task<IActionResult> StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent);
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
public async Task<IActionResult> StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent);
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Conclusion

Créer un visionneur PDF dans ASP.NET Core ne doit pas être complexe. En combinant le moteur de rendu IronPDF avec le lecteur PDF par défaut du navigateur, vous obtenez une solution professionnelle et conviviale pour afficher, éditer et gérer des fichiers PDF en ligne. Que vous ayez besoin de rendre des factures, d'intégrer des rapports dynamiques, ou de construire un visionneur de documents pour les applications mobiles, cette approche offre le bon équilibre entre fonctionnalités, évolutivité et performance.

Vous recherchez un tutoriel complet avec un code source fonctionnel ? Téléchargez notre projet d'exemple gratuit et découvrez comment IronPDF peut vous aider à intégrer un visionneur PDF moderne, sécurisé et flexible pour ASP.NET dès aujourd'hui.

Prêt à implémenter la visualisation de PDF dans votre application ASP.NET Core ? Commencez avec un essai gratuit d'IronPDF et transformez les capacités de gestion de documents de votre application web dès aujourd'hui.

Commencez avec IronPDF maintenant.
green arrow pointer

Questions Fréquemment Posées

Quelle est la meilleure façon d'afficher des documents PDF dans une application ASP.NET ?

L'utilisation de IronPDF permet aux développeurs de rendre facilement les documents PDF directement dans le navigateur au sein d'une application ASP.NET, offrant une expérience utilisateur fluide sans besoin d'outils tiers comme Adobe Acrobat Reader.

IronPDF peut-il être utilisé pour améliorer la visualisation de PDF dans les applications web ?

Oui, IronPDF est conçu pour améliorer la visualisation de PDF en permettant une intégration fluide dans les applications web, assurant que les utilisateurs peuvent visualiser les documents PDF avec aisance et efficacité.

Ai-je besoin d'outils supplémentaires pour visualiser les PDF en utilisant IronPDF dans ASP.NET ?

Non, IronPDF élimine le besoin d'outils supplémentaires comme Adobe Acrobat Reader, offrant une solution intégrée pour visualiser les PDF directement dans les applications ASP.NET.

Comment puis-je implémenter une visionneuse PDF dans mon application web .NET ?

En intégrant IronPDF dans votre application web .NET, vous pouvez implémenter une visionneuse PDF puissante qui prend en charge diverses fonctionnalités PDF et offre une interface conviviale.

Pourquoi devrais-je utiliser IronPDF pour la visualisation de PDF dans ASP.NET ?

IronPDF fournit une solution fiable et efficace pour la visualisation de PDF dans les applications ASP.NET, permettant aux développeurs d'offrir aux utilisateurs une expérience fluide sans dépendre de plugins externes.

Est-il possible d'afficher des formulaires PDF interactifs en utilisant IronPDF ?

Oui, IronPDF prend en charge l'affichage de formulaires PDF interactifs, permettant aux utilisateurs de remplir et d'interagir avec des documents PDF directement dans le navigateur.

Quels types de documents PDF peuvent être visualisés en utilisant IronPDF ?

IronPDF peut gérer divers types de documents PDF, y compris des factures, rapports et formulaires interactifs, en faisant un outil polyvalent pour toute application ASP.NET.

IronPDF prend-il en charge .NET 10 pour la génération et l'affichage de fichiers PDF ?

Oui. IronPDF est entièrement compatible avec .NET 10, ainsi qu'avec les versions antérieures telles que .NET 9, 8, 7, 6, .NET Core et Framework. Vous pouvez donc utiliser IronPDF dans des applications ASP.NET ou Blazor modernes (.NET 10) pour générer, diffuser et afficher des PDF directement dans le navigateur. (ironpdf.com)

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