Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment créer une visionneuse de PDF dans une application Web ASP .NET avec IronPDF

La création d'applications web pour l'affichage de documents PDF est simple. Que vous présentiez des factures, des rapports ou des formulaires interactifs, les utilisateurs s'attendent à une visualisation fluide des documents dans le navigateur, sans avoir besoin d'Adobe Acrobat Reader ou d'autres outils tiers.

IronPDF rend cette tâche incroyablement simple. Cette bibliothèque .NET fréquemment mise à jour vous permet de créer, de rendre et d'afficher des fichiers PDF au sein de votre projet ASP.NET Core en quelques lignes de code seulement. Plongeons dans la façon dont vous pouvez mettre en œuvre un contrôle de visualisation PDF professionnel qui gère tout, de la simple conversion HTML aux vues Razor complexes.

Comment fonctionne l'affichage des PDF par navigateur ?

Bonne nouvelle : les navigateurs modernes intègrent déjà une visionneuse PDF. Lorsque votre serveur envoie un fichier PDF avec le type MIME correct (application/pdf), le navigateur l'affiche automatiquement en ligne. Cela signifie que vous n'avez pas besoin de plugins externes ou de bibliothèques JavaScript complexes côté client pour afficher les documents PDF.

La clé réside dans la génération de documents PDF de haute qualité et dans la configuration des en-têtes de réponse corrects. IronPDF s'occupe du gros du travail côté serveur, en utilisant son moteur de rendu basé sur Chrome pour créer des pages PDF parfaites au pixel près à partir de HTML, CSS et JavaScript. Le résultat ? Vos utilisateurs bénéficient d'une expérience de visualisation de documents en mode natif avec des fonctionnalités telles que la sélection de texte, la recherche, l'impression et le téléchargement, le tout sans configuration supplémentaire de l'interface utilisateur. Vous pouvez facilement intégrer et afficher le contenu.

Cette approche fonctionne de manière transparente pour toutes les applications .NET, que vous construisiez avec ASP.NET Core MVC, des vues Razor, ou même des projets de dossiers web hérités.

Comment installer et configurer le contrôle PDF Viewer?

Quelques étapes suffisent pour commencer à utiliser IronPDF dans Visual Studio. Ouvrez votre projet ASP.NET Core et installez le package NuGet :

Install-Package IronPdf

Ensuite, ajoutez votre configuration de clé de licence dans Program.cs :

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Voilà toute la configuration dont vous avez besoin pour qu'IronPDF s'intègre pleinement à vos applications .NET. Reportez-vous à la documentation d'IronPDF pour obtenir des options de configuration supplémentaires pour des scénarios avancés tels que le déploiement Azure ou les conteneurs Docker. Vous pouvez démarrer avec un essai gratuit pour explorer toutes les fonctionnalités avant de vous engager.

Comment générer et afficher des documents PDF à partir de HTML ?

La manière la plus simple de créer une visionneuse PDF dans votre application web ASP.NET Core est de convertir directement les chaînes HTML. Voici un exemple de contrôleur complet :

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Create PDF from HTML with CSS styling
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p class='content'>This PDF was generated using IronPDF in ASP.NET Core.</p>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Display PDF inline in browser
        Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Create PDF from HTML with CSS styling
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Sample PDF Document</h1>
                <p class='content'>This PDF was generated using IronPDF in ASP.NET Core.</p>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Display PDF inline in browser
        Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
        return File(pdf.BinaryData, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Sortie PDF visualisée dans le navigateur

Comment créer un visualiseur PDF dans une application Web ASP .NET avec IronPDF : Image 1 - Image 1 de 3 liées à Comment créer une visionneuse de PDF dans une application Web ASP .NET avec IronPDF

La classe ChromePdfRenderer utilise Chromium pour un rendu précis, garantissant que vos CSS, JavaScript et images s'affichent exactement comme prévu. Le fait de définir Content-Disposition sur inline indique au navigateur d'afficher le PDF plutôt que de le télécharger.

Cela crée une expérience de visualisation transparente permettant aux utilisateurs d'accéder au document directement dans votre interface web. Pour les documents dont la mise en page est complexe, vous pouvez souvent spécifier des paramètres de rendu tels que la largeur et la hauteur dans le code HTML ou à l'aide de RenderingOptions.

Pour plus d'options de conversion HTML, consultez le guide HTML string to PDF.

Comment rendre des fichiers PDF à partir d'URL et de Razor Views?

IronPDF peut également convertir des pages web en direct en documents PDF. Cette traduction est parfaite pour générer des rapports ou archiver du contenu web :

public IActionResult RenderFromUrl(string url = "https://en.wikipedia.org/wiki/Main_Page")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    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 RenderFromUrl(string url = "https://en.wikipedia.org/wiki/Main_Page")
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.EnableJavaScript = true;
    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

Visionneuse de documents du navigateur affichant un PDF généré

Comment créer une visionneuse PDF dans une application Web ASP .NET avec IronPDF : Image 2 - Image 2 de 3 liées à Comment créer une visionneuse de PDF dans une application Web ASP .NET avec IronPDF

Pour convertir les vues Razor en PDF, vous aurez besoin d'une méthode d'aide pour rendre la vue en HTML d'abord. Cette approche vous permet de réutiliser vos modèles existants pour l'affichage web et la génération de PDF :

public async Task<IActionResult> ViewToPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 1001,
        InvoiceDate = DateTime.Now,
        CustomerName = "Acme Corp.",
        Items = new List<ItemModel>
        {
            new ItemModel { Description = "Product A", Quantity = 2, UnitPrice = 50.00m },
            new ItemModel { Description = "Service B", Quantity = 1, UnitPrice = 150.00m }
        }
    };
    invoiceModel.TotalAmount = invoiceModel.Items.Sum(i => i.LineTotal);
    // NOTE: RenderViewToStringAsync uses the Request services and ActionContext
    var htmlContent = await RenderViewToStringAsync("Invoice", invoiceModel);
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToStringAsync(string viewName, object model)
{
    // Use the current HttpContext's service provider (guaranteed available during a request)
    var actionContext = new ActionContext(HttpContext, RouteData, ControllerContext.ActionDescriptor);
    var viewEngine = HttpContext.RequestServices.GetRequiredService<IRazorViewEngine>();
    var tempDataFactory = HttpContext.RequestServices.GetRequiredService<ITempDataDictionaryFactory>();
    var tempData = tempDataFactory.GetTempData(HttpContext);
    ViewData.Model = model;
    var viewResult = viewEngine.FindView(actionContext, viewName, isMainPage: false);
    if (!viewResult.Success)
    {
        // Helpful error for debugging
        var searchedLocations = string.Join(Environment.NewLine, viewResult.SearchedLocations ?? Array.Empty<string>());
        throw new InvalidOperationException($"Couldn't find view '{viewName}'. Searched locations:{Environment.NewLine}{searchedLocations}");
    }
    await using var writer = new StringWriter();
    var viewContext = new ViewContext(
        actionContext,
        viewResult.View,
        ViewData,
        tempData,
        writer,
        new HtmlHelperOptions()
    );
    await viewResult.View.RenderAsync(viewContext);
    return writer.ToString();
}
public async Task<IActionResult> ViewToPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 1001,
        InvoiceDate = DateTime.Now,
        CustomerName = "Acme Corp.",
        Items = new List<ItemModel>
        {
            new ItemModel { Description = "Product A", Quantity = 2, UnitPrice = 50.00m },
            new ItemModel { Description = "Service B", Quantity = 1, UnitPrice = 150.00m }
        }
    };
    invoiceModel.TotalAmount = invoiceModel.Items.Sum(i => i.LineTotal);
    // NOTE: RenderViewToStringAsync uses the Request services and ActionContext
    var htmlContent = await RenderViewToStringAsync("Invoice", invoiceModel);
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToStringAsync(string viewName, object model)
{
    // Use the current HttpContext's service provider (guaranteed available during a request)
    var actionContext = new ActionContext(HttpContext, RouteData, ControllerContext.ActionDescriptor);
    var viewEngine = HttpContext.RequestServices.GetRequiredService<IRazorViewEngine>();
    var tempDataFactory = HttpContext.RequestServices.GetRequiredService<ITempDataDictionaryFactory>();
    var tempData = tempDataFactory.GetTempData(HttpContext);
    ViewData.Model = model;
    var viewResult = viewEngine.FindView(actionContext, viewName, isMainPage: false);
    if (!viewResult.Success)
    {
        // Helpful error for debugging
        var searchedLocations = string.Join(Environment.NewLine, viewResult.SearchedLocations ?? Array.Empty<string>());
        throw new InvalidOperationException($"Couldn't find view '{viewName}'. Searched locations:{Environment.NewLine}{searchedLocations}");
    }
    await using var writer = new StringWriter();
    var viewContext = new ViewContext(
        actionContext,
        viewResult.View,
        ViewData,
        tempData,
        writer,
        new HtmlHelperOptions()
    );
    await viewResult.View.RenderAsync(viewContext);
    return writer.ToString();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Sortie visualisée PDF

Comment créer un visualiseur PDF dans une application Web ASP .NET avec IronPDF : Image 3 - PDF rendu et visualisé dans le navigateur

Cette méthode d'aide vous assure un chemin propre pour rendre le contenu de votre vue Razor dans une chaîne HTML, qu'IronPDF peut ensuite convertir. Le tutoriel Razor to PDF couvre ce flux de travail en détail.

Comment traiter des fichiers PDF volumineux avec le streaming?

Lors du traitement de documents PDF volumineux, le streaming améliore les performances et réduit l'utilisation de la mémoire. L'utilisation d'un MemoryStream vous permet de servir des fichiers de manière efficace :

public IActionResult StreamLargePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Large Document</h1><p>Content here...</p>");
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
public IActionResult StreamLargePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Large Document</h1><p>Content here...</p>");
    var stream = new MemoryStream(pdf.BinaryData);
    return new FileStreamResult(stream, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Pour les anciens projets ASP.NET Web Forms, vous pouvez mettre en œuvre une fonctionnalité similaire à l'aide de gestionnaires d'événements :

protected void btnGeneratePdf_Click(object sender, EventArgs e)
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>");
    Response.ContentType = "application/pdf";
    Response.BinaryWrite(pdf.BinaryData);
    Response.End();
}
protected void btnGeneratePdf_Click(object sender, EventArgs e)
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>");
    Response.ContentType = "application/pdf";
    Response.BinaryWrite(pdf.BinaryData);
    Response.End();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Quelles sont les fonctionnalités prises en charge par ce contrôle de visualisation PDF ?

En exploitant la visionneuse PDF native du navigateur, vos utilisateurs bénéficient automatiquement d'un riche ensemble de fonctionnalités : sélection de texte pour copier le contenu, fonctionnalité de recherche pour trouver des données spécifiques, options d'impression pour les copies physiques et capacités de téléchargement pour l'accès hors ligne.

Cela concerne également les scénarios dans lesquels les utilisateurs doivent télécharger un document existant pour le visualiser, l'éditer ou le fusionner. Le traitement côté serveur d'IronPDF gère l'exécution JavaScript, le rendu CSS et les formulaires - y compris les éléments interactifs que les utilisateurs peuvent remplir.

Le cadre prend en charge l'intégration de l'aide aux balises, la personnalisation de la taille des pages, des en-têtes et des pieds de page, des filigranes et même des capacités d'édition. Pour un aperçu complet des fonctionnalités, explorez la page des fonctionnalités d'IronPDF.

Conclusion

La création d'une visionneuse PDF dans une application web ASP.NET est remarquablement simple avec IronPDF. En associant son puissant moteur de rendu à la visionneuse PDF par défaut du navigateur, vous obtenez une solution professionnelle pour l'affichage, le traitement et la manipulation des fichiers PDF dans vos applications web. Qu'il s'agisse de convertir du HTML, des URL ou des vues Razor, l'implémentation nécessite un minimum de code tout en offrant un maximum de fonctionnalités.

Vous êtes prêt à intégrer l'affichage des PDF dans votre projet ? Démarrez avec un essai gratuit d'IronPDF et transformez la façon dont votre application web .NET Core gère les documents. Pour les déploiements en production, consultez les options de licence adaptées aux besoins de votre équipe. Vous voulez en savoir plus sur l'excellence d'IronPDF en matière d'exemples de conversion ? Découvrez comment IronPDF gère la conversion de DOCX en PDF, la conversion d'images en PDF et bien plus encore dans les guides pratiques how-to.

Commencez avec IronPDF maintenant.
green arrow pointer

Questions Fréquemment Posées

Comment puis-je créer une visionneuse PDF dans une application web ASP.NET ?

Vous pouvez créer une visionneuse PDF dans une application web ASP.NET à l'aide d'IronPDF for .NET. Il vous permet d'afficher des documents PDF directement dans votre application, offrant une expérience de visualisation transparente sans nécessiter d'outils externes tels qu'Adobe Acrobat Reader.

Quels sont les avantages de l'utilisation d'IronPDF pour l'affichage de PDF en ASP.NET ?

IronPDF offre une expérience d'affichage de PDF fluide et intégrée dans les applications ASP.NET. Il vous permet d'afficher des documents en ligne, prend en charge différents types de fichiers et élimine la nécessité d'utiliser des visionneuses PDF tierces, ce qui améliore l'expérience de l'utilisateur.

Puis-je afficher des formulaires PDF interactifs dans mon application web ASP.NET ?

Oui, avec IronPDF, vous pouvez afficher des formulaires PDF interactifs dans votre application web ASP.NET. Il prend en charge le rendu des champs de formulaire et des éléments interactifs, ce qui permet aux utilisateurs d'interagir avec les documents directement dans le navigateur.

Est-il possible de présenter des factures et des rapports à l'aide d'IronPDF for .NET en ASP.NET ?

Dans l'absolu, IronPDF est bien adapté à l'affichage de factures, de rapports et d'autres types de documents dans les applications ASP.NET. Il garantit un rendu précis et efficace de vos documents au sein de l'application web.

Ai-je besoin d'Adobe Acrobat Reader pour visualiser les PDF dans les applications ASP.NET utilisant IronPDF ?

Non, vous n'avez pas besoin d'Adobe Acrobat Reader pour visualiser les PDF dans les applications ASP.NET lorsque vous utilisez IronPDF. Il vous permet de rendre et d'afficher les PDF directement dans le navigateur, sans dépendances tierces.

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