Comment utiliser IronPDF avec Blazor pour la génération de PDF | IronPDF

Tutoriel du serveur IronPDF Blazor : Rendre HTML en PDF en C#35;

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF permet la conversion de HTML en PDF dans les applications Blazor Server à l'aide de C# avec une configuration minimale, en prenant en charge .NET 6 et en fournissant des capacités de génération de PDF directement à partir de vos composants Blazor.

Quickstart : Render PDFs in Blazor Server

Commencez à utiliser IronPDF dans vos applications Blazor Server. Cet exemple montre comment convertir un contenu HTML en PDF. Transformez vos composants Blazor en PDF avec quelques lignes de code.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronPDF avec le gestionnaire de packages NuGet

    PM > Install-Package IronPdf

  2. Copiez et exécutez cet extrait de code.

    IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath);
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Comment créer un nouveau projet de serveur Blazor?

Créez un nouveau projet et sélectionnez le type Blazor Server App. Visual Studio fournit un modèle pour construire des applications Blazor côté serveur qui peuvent utiliser .NET pour la génération de PDF. Le modèle d'hébergement Blazor Server exécute la logique de votre application sur le serveur, ce qui le rend adapté aux scénarios de génération de PDF qui nécessitent un traitement côté serveur.

Boîte de dialogue Visual Studio Create Project montrant Blazor Server App et d'autres modèles de projet Blazor avec des descriptions

Quels sont les prérequis pour les applications du serveur Blazor?

Avant de créer une application Blazor Server avec IronPDF, assurez-vous d'avoir installé Visual Studio 2022 ou une version ultérieure avec la charge de travail ASP.NET et de développement web. Vous devez disposer du SDK .NET 6 ou d'une version supérieure. Les apps IronPDF nécessitent une connexion constante au serveur, ce qui les rend adaptées aux scénarios dans lesquels vous devez générer des PDF à partir d'un contenu HTML complexe ou lorsque vous travaillez avec des données sensibles qui doivent rester sur le serveur.

Quelle version de .NET dois-je utiliser ?

Pour assurer la compatibilité et les performances d'IronPDF dans les applications Blazor Server, utilisez .NET 6 ou une version plus récente. IronPDF est compatible avec .NET Core 3.1, .NET 5, .NET 6, .NET 7 et .NET 8. La dernière version LTS (.NET 6 ou .NET 8) assure la stabilité et le support à long terme. Lorsque vous déployez vers Azure, assurez-vous que votre plan Azure App Service prend en charge la version .NET que vous avez choisie.

Comment configurer les paramètres du projet?

Lors de la configuration de votre projet Blazor Server, sélectionnez "Configure for HTTPS" pour garantir une communication sécurisée entre le client et le serveur. Ne cochez pas la case "Activer Docker", sauf si vous prévoyez d'exécuter IronPDF dans Docker. Pour l'authentification, choisissez "Aucune" dans un premier temps - vous pourrez ajouter l'authentification ultérieurement si nécessaire. Le nom du projet doit respecter les conventions de dénomination du C# et éviter les espaces ou les caractères spéciaux.

Comment installer IronPDF dans mon projet Blazor?

Après avoir créé le projet, suivez les étapes suivantes pour installer la bibliothèque IronPDF à partir de NuGet dans Visual Studio. IronPDF fournit une API pour créer des PDF à partir de chaînes HTML, d'URL et de documents PDF existants.

  1. Dans la fenêtre Explorateur de solutions de Visual Studio, cliquez droit sur Références et choisissez Gérer les packages NuGet.
  2. Sélectionnez Parcourir et recherchez IronPdf.
  3. Sélectionnez la dernière version du package, cochez la case de votre projet et cliquez sur installer.

Alternativement, vous pouvez utiliser la CLI .NET pour l'installer :

Install-Package IronPdf

Pour les projets ciblant des plateformes spécifiques, vous pourriez avoir besoin de paquets spécifiques à la plateforme. Par exemple, en cas de déploiement sur Linux, consultez le guide d'installation Linux.

Pourquoi choisir NuGet Package Manager plutôt que l'interface de programmation ?

L'interface graphique du gestionnaire de paquets NuGet dans Visual Studio offre une interface visuelle qui facilite la navigation dans les versions des paquets, la visualisation des dépendances et la gestion simultanée de plusieurs projets. Elle aide les développeurs qui découvrent IronPDF à explorer les packages disponibles et leurs descriptions. L'approche CLI est plus rapide pour les développeurs expérimentés et mieux adaptée aux pipelines de construction automatisés ou lorsque vous travaillez avec des conteneurs Docker.

Quelle version d'IronPDF dois-je installer?

Installez la dernière version stable d'IronPDF pour accéder aux nouvelles fonctionnalités, aux améliorations des performances et aux mises à jour de sécurité. Consultez le changelog pour obtenir des détails sur les mises à jour récentes. Si vous travaillez sur un projet existant, assurez-vous de la compatibilité de la version avec vos autres dépendances. Pour les environnements de production, effectuez des tests approfondis avant de mettre à jour les versions majeures.

Comment vérifier que l'installation a réussi?

Après l'installation, vérifiez qu'IronPDF est correctement installé en consultant le dossier " Packages " dans l'explorateur de solutions. Vous devriez voir "IronPdf" listé parmi les dépendances de votre projet. Ajoutez utilisant IronPdf; à un fichier C# - IntelliSense devrait reconnaître l'espace de noms. Vous pouvez également effectuer un test simple en créant un PDF de base à partir de HTML pour confirmer que tout fonctionne correctement.

Comment ajouter un nouveau composant Razor pour la génération de PDF?

Une fois IronPDF installé dans votre projet Blazor, ajoutez un nouveau composant Razor. Pour ce tutoriel, nommez-le "IronPdfComponent". Ce composant traitera les entrées des utilisateurs et générera des PDF de manière dynamique sur la base du contenu HTML. L'architecture de composants de Blazor facilite la création de fonctionnalités de génération de PDF réutilisables qui peuvent être partagées dans votre application.

Boîte de dialogue Visual Studio Add New Item avec Razor Component sélectionné et IronPdfComponent saisi comme nom de fichier

Après cela, mettez à jour le code comme suit :

@page "/IronPdf"
@inject IJSRuntime JS

<h3>IronPdfComponent</h3>

<EditForm Model="@_InputMsgModel" id="inputText">
  <div>
    <InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" />
  </div>
  <div>
    <button type="button" @onclick="@SubmitHTML">Render HTML</button>
  </div>
</EditForm>
@page "/IronPdf"
@inject IJSRuntime JS

<h3>IronPdfComponent</h3>

<EditForm Model="@_InputMsgModel" id="inputText">
  <div>
    <InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" />
  </div>
  <div>
    <button type="button" @onclick="@SubmitHTML">Render HTML</button>
  </div>
</EditForm>
HTML
@code {

    // Model to bind user input
    private InputHTMLModel _InputMsgModel = new InputHTMLModel();

    private async Task SubmitHTML()
    {
        // Set your IronPDF license key
        IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

        // Create a renderer to convert HTML to PDF
        var render = new IronPdf.ChromePdfRenderer();

        // Configure rendering options for better output
        render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        render.RenderingOptions.MarginTop = 40;
        render.RenderingOptions.MarginBottom = 40;

        // Render the HTML input into a PDF document
        var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);

        var fileName = "iron.pdf";

        // Create a stream reference for the PDF content
        using var streamRef = new DotNetStreamReference(stream: doc.Stream);

        // Invoke JavaScript function to download the PDF in the browser
        await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
    }

    public class InputHTMLModel
    {
        public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1>
            <p>This is a sample PDF generated from HTML content in Blazor Server.</p>
            <ul>
                <li>Easy to use API</li>
                <li>High-quality rendering</li>
                <li>Full HTML5 and CSS3 support</li>
            </ul>";
    }
}
@code {

    // Model to bind user input
    private InputHTMLModel _InputMsgModel = new InputHTMLModel();

    private async Task SubmitHTML()
    {
        // Set your IronPDF license key
        IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

        // Create a renderer to convert HTML to PDF
        var render = new IronPdf.ChromePdfRenderer();

        // Configure rendering options for better output
        render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        render.RenderingOptions.MarginTop = 40;
        render.RenderingOptions.MarginBottom = 40;

        // Render the HTML input into a PDF document
        var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);

        var fileName = "iron.pdf";

        // Create a stream reference for the PDF content
        using var streamRef = new DotNetStreamReference(stream: doc.Stream);

        // Invoke JavaScript function to download the PDF in the browser
        await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
    }

    public class InputHTMLModel
    {
        public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1>
            <p>This is a sample PDF generated from HTML content in Blazor Server.</p>
            <ul>
                <li>Easy to use API</li>
                <li>High-quality rendering</li>
                <li>Full HTML5 and CSS3 support</li>
            </ul>";
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce composant utilise la classe ChromePdfRenderer pour la génération de PDF. Vous pouvez personnaliser le rendu à l'aide de diverses options telles que tailles de papier personnalisées, marges, et en-têtes/pieds de page.

Ajoutez ce code JavaScript à _layout.cshtml pour permettre le téléchargement du PDF rendu par IronPDF dans l'application Blazor :

<script>
    // JavaScript function to download PDFs generated by IronPdf
    window.SubmitHTML = async (fileName, contentStreamReference) => {
        // Get the PDF content as an ArrayBuffer
        const arrayBuffer = await contentStreamReference.arrayBuffer();

        // Create a Blob from the ArrayBuffer
        const blob = new Blob([arrayBuffer]);

        // Create an object URL for the Blob
        const url = URL.createObjectURL(blob);

        // Create an anchor element to initiate the download
        const anchorElement = document.createElement("a");
        anchorElement.href = url;
        anchorElement.download = fileName ?? "download.pdf";

        // Programmatically click the anchor to start the download
        anchorElement.click();

        // Clean up by removing the anchor and revoking the object URL
        anchorElement.remove();
        URL.revokeObjectURL(url);
    };
</script>
<script>
    // JavaScript function to download PDFs generated by IronPdf
    window.SubmitHTML = async (fileName, contentStreamReference) => {
        // Get the PDF content as an ArrayBuffer
        const arrayBuffer = await contentStreamReference.arrayBuffer();

        // Create a Blob from the ArrayBuffer
        const blob = new Blob([arrayBuffer]);

        // Create an object URL for the Blob
        const url = URL.createObjectURL(blob);

        // Create an anchor element to initiate the download
        const anchorElement = document.createElement("a");
        anchorElement.href = url;
        anchorElement.download = fileName ?? "download.pdf";

        // Programmatically click the anchor to start the download
        anchorElement.click();

        // Clean up by removing the anchor and revoking the object URL
        anchorElement.remove();
        URL.revokeObjectURL(url);
    };
</script>
JAVASCRIPT

Éditez le fichier NavMenu.razor dans le dossier Shared pour inclure un onglet de navigation vers notre nouveau composant Razor. Ajoutez le code suivant :

<div class="nav-item px-3">
    <NavLink class="nav-link" href="IronPdf">
        <span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf
    </NavLink>
</div>
<div class="nav-item px-3">
    <NavLink class="nav-link" href="IronPdf">
        <span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf
    </NavLink>
</div>
HTML

Une fois que tout cela a été appliqué, vous pouvez exécuter votre solution et vous devriez voir ceci :

L'application Blazor avec le composant IronPDF montrant une zone de texte d'entrée HTML et le bouton Render HTML dans la zone de contenu principale

Pourquoi utiliser JavaScript pour les téléchargements de PDF dans Blazor?

Blazor Server fonctionne sur une connexion SignalR où tout le code C# s'exécute sur le serveur. L'interopérabilité JavaScript est nécessaire pour déclencher des actions spécifiques au navigateur, comme le téléchargement de fichiers. La classe DotNetStreamReference transfère des données binaires du serveur au client sans charger l'intégralité du PDF en mémoire en une seule fois. Cette approche est plus efficace que l'encodage base64 et fonctionne bien pour les PDF volumineux. Pour des approches alternatives, envisagez l'exportation de PDF vers des flux de mémoire.

Quels sont les problèmes courants lors de la mise en œuvre de téléchargements PDF ? Parmi les défis courants, citons la gestion de fichiers volumineux susceptibles d'interrompre la connexion SignalR, la gestion de demandes simultanées de génération de PDF et la garantie d'une élimination correcte des ressources. Pour éviter les fuites de mémoire, éliminez toujours les documents PDF et les flux de données de manière appropriée. Pensez à mettre en œuvre [la génération de PDF IronPDF](https://ironpdf.com/how-to/async/) pour de meilleures performances. Si vous rencontrez des problèmes de rendu, consultez la [documentation des options de rendu](https://ironpdf.com/how-to/rendering-options/) pour obtenir des conseils de configuration. ### Comment traiter les fichiers PDF volumineux? Pour les PDF volumineux, envisagez de mettre en place des indicateurs de progression et des téléchargements groupés. Vous pouvez optimiser la taille des PDF à l'aide de [techniques de compression](https://ironpdf.com/how-to/pdf-compression/). Définissez des délais d'attente appropriés dans la configuration de votre serveur Blazor : ```csharp services.AddServerSideBlazor() .AddHubOptions(options => { options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB options.ClientTimeoutInterval = TimeSpan.FromSeconds(60); }); ``` Pour les documents très volumineux, envisagez d'abord de les enregistrer sur le serveur et de fournir un lien de téléchargement au lieu de les diffuser directement.

Quand dois-je utiliser des références de flux ou des téléchargements directs ? Utilisez `DotNetStreamReference` pour les PDF de moins de 50 Mo à télécharger immédiatement. Pour les fichiers plus volumineux ou lorsque vous devez [sauvegarder les PDF sur disque](https://ironpdf.com/how-to/export-save-pdf-csharp/), envisagez de générer le PDF sur le serveur et de fournir un lien de téléchargement. Les téléchargements directs fonctionnent bien pour les rapports et les factures, tandis que le traitement par lots ou [la fusion de plusieurs PDF](https://ironpdf.com/how-to/merge-or-split-pdfs/) pourraient bénéficier d'un stockage côté serveur. Tenez compte des contraintes de mémoire de votre application et des exigences en matière d'expérience utilisateur lorsque vous choisissez une approche.

Questions Fréquemment Posées

Comment créer un nouveau projet Blazor Server pour la génération de PDF ?

Pour créer un projet Blazor Server avec IronPDF, sélectionnez 'Blazor Server App' comme type de projet dans Visual Studio. Le modèle d'hébergement Blazor Server exécute la logique de l'application sur le serveur, ce qui le rend idéal pour les scénarios de génération de PDF qui nécessitent un traitement côté serveur avec IronPDF.

Quelles sont les conditions préalables à l'utilisation d'apps Blazor Server avec génération de PDF ?

Vous avez besoin de Visual Studio 2022 ou d'une version ultérieure avec la charge de travail ASP.NET et de développement web, ainsi que de .NET 6 SDK ou d'une version plus récente. Les apps Blazor Server nécessitent une connexion constante au serveur, ce qui les rend adaptées à la génération de PDF à partir de contenus HTML complexes à l'aide d'IronPDF ou lorsque vous travaillez avec des données sensibles qui doivent rester sur le serveur.

Quelle version de .NET dois-je utiliser pour la génération de PDF dans Blazor ?

Pour une compatibilité et des performances optimales avec IronPDF dans les applications Blazor Server, utilisez .NET 6 ou une version supérieure. IronPDF prend en charge .NET Core 3.1, .NET 5, .NET 6, .NET 7 et .NET 8. Les dernières versions LTS (.NET 6 ou .NET 8) offrent une stabilité et un support à long terme.

Comment configurer les paramètres d'un projet pour une application Blazor PDF ?

Lors de la configuration de votre projet Blazor Server pour IronPDF, sélectionnez 'Configure for HTTPS' pour une communication sécurisée. Ne cochez pas la case " Enable Docker ", sauf si vous prévoyez d'exécuter IronPDF dans des conteneurs Docker. Commencez par 'None' pour l'authentification - vous pourrez l'ajouter plus tard. Utilisez les conventions de dénomination C# appropriées, sans espaces ni caractères spéciaux.

Comment puis-je générer rapidement des PDF à partir de HTML dans Blazor Server ?

IronPDF fournit une solution simple en une ligne pour la conversion de HTML en PDF dans le serveur Blazor : IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath). Cela vous permet de transformer vos composants Blazor en PDF avec un minimum de code.

Quel est le flux de travail minimal pour mettre en œuvre la génération de PDF dans Blazor ?

Le flux de travail minimal se compose de 5 étapes : 1) Installer la bibliothèque HTML-to-PDF IronPDF, 2) Créer un nouveau projet Blazor dans Visual Studio, 3) Convertir les pages web par URL en documents PDF à l'aide d'IronPDF, 4) Rendre les pages web dans le navigateur web du client, et 5) Visualiser les documents PDF générés à partir des chaînes HTML.

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
Prêt à commencer?
Nuget Téléchargements 16,685,821 | Version : 2025.12 vient de sortir