Comment convertir Razor en PDF dans Blazor Server en utilisant C#

Convertir Razor en PDF dans le serveur Blazor avec C#35;

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

Convertir les composants Razor en PDF dans le serveur Blazor en utilisant la méthode RenderRazorComponentToPdf d'IronPDF. Transformez les composants d'interface utilisateur C# en PDF avec un minimum de code et une personnalisation complète des en-têtes, des pieds de page et du formatage des pages.

Démarrage rapide : Convertir un composant Razor en PDF en quelques minutes

Convertir les composants Razor en PDF dans les applications Blazor Server à l'aide d'IronPDF. La méthode RenderRazorComponentToPdf transforme vos composants Razor en PDF en quelques lignes de code. Suivez ce guide pour intégrer la conversion de Razor en PDF dans votre projet avec une configuration minimale et des options de personnalisation flexibles.

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.

    // Installer-Package IronPdf.Extensions.Blazor
    var pdf = new IronPdf.ChromePdfRenderer()
        .RenderRazorComponentToPdf<MyComponent>(new Dictionary<string,object> { {"persons",personsList} })
        .SaveAs("component-to-pdf.pdf");
  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

Quels sont les packages NuGet dont j'ai besoin pour la conversion de Razor en PDF?

<TODO : Ajouter une image ici -->

Le paquet IronPdf.Extensions.Blazor étend le paquet principal IronPdf. Les deux paquets sont nécessaires pour rendre les composants Razor dans les documents PDF dans une application Blazor Server. Cette extension fournit des points d'intégration pour les applications Blazor Server, vous permettant de convertir des composants Razor existants en PDF sans refactoring important.

L'installation de IronPdf.Extensions.Blazor inclut automatiquement la bibliothèque de base IronPDF en tant que dépendance. Le package d'extension ajoute des méthodes telles que RenderRazorComponentToPdf qui comprennent le modèle de composant de Blazor et rendent correctement les composants avec des données liées. Pour des performances optimales et les dernières fonctionnalités, utilisez la version la plus récente des deux logiciels. Consultez le changelog pour connaître les mises à jour et les améliorations.

Installer-Package IronPdf.Extensions.Blazor
Bibliothèque C# NuGet pour PDF

Installer avec NuGet

Installer-Package IronPdf.Extensions.Blazor

Comment rendre les composants Razor en PDF dans le serveur Blazor?

<TODO : Ajouter une image ici -->

Un projet d'application Blazor Server est nécessaire pour convertir les composants Razor en PDFs. Les applications Blazor Server s'exécutent sur le serveur et rendent les mises à jour de l'interface utilisateur via une connexion SignalR, ce qui les rend adaptées à la génération de PDF lorsqu'un traitement côté serveur est nécessaire. Cette architecture garantit que le rendu des PDF s'effectue sur le serveur, ce qui permet d'obtenir des résultats cohérents quel que soit le navigateur ou l'appareil du client.

Avant de commencer, assurez-vous d'avoir installé le SDK .NET et Visual Studio 2019 ou une version ultérieure avec la charge de travail ASP.NET et de développement web. Créez une nouvelle application Blazor Server à l'aide des modèles de projet de Visual Studio ou à l'aide de la CLI .NET avec dotnet new blazorserver. Pour des instructions d'installation détaillées et des exigences spécifiques à la plateforme, voir la Vue d'ensemble de l'installation.

Quelle structure de classe de modèle dois-je utiliser ?

Ajoutez une classe C# standard nommée PersonInfo. Cette classe sert de modèle pour le stockage des informations relatives aux personnes. Insérez le code suivant :

:path=/static-assets/pdf/content-code-examples/how-to/razor-to-pdf-blazor-server-model.cs
namespace BlazorSample.Data
{
    public class PersonInfo
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
    }
}
$vbLabelText   $csharpLabel

Ce modèle représente la structure de données transmise à votre composant Razor et rendue dans le PDF. IronPDF fonctionne avec n'importe quel modèle d'objet C#, des simples POCO aux modèles complexes de cadre d'entités. Lorsque vous concevez des modèles pour la génération de PDF, tenez compte de la manière dont les données s'afficheront dans le document final et structurez les propriétés en conséquence.

Comment implémenter le composant Razor pour la génération de PDF?

Utilisez la méthode RenderRazorComponentToPdf pour convertir les composants Razor en PDFs. Accédez à cette méthode en instanciant la classe ChromePdfRenderer. La méthode renvoie un objet PdfDocument pour exportation ou modification ultérieure.

Le document IronPdf renvoyé prend en charge des modifications supplémentaires, notamment la conversion aux formats PDF/A ou PDF/UA. Vous pouvez fusionner ou scinder le document, faire pivoter les pages et ajouter des annotations ou des marques-pages. Appliquez des filigranes personnalisés si nécessaire.

Ajoutez un composant Razor nommé Person.razor. Entrez le code suivant :

@page "/Person"
@using BlazorSample.Data;
@using IronPdf;
@using IronPdf.Extensions.Blazor;

<h3>Person</h3>

@code {
    // A parameter to receive a list of persons from the parent component.
    [Parameter]
    public IEnumerable<PersonInfo> persons { get; set; }

    // Dictionary to hold parameters that will be passed to the PDF renderer.
    public Dictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>();

    protected override async Task OnInitializedAsync()
    {
        // Initialize the persons list with some sample data.
        persons = new List<PersonInfo>
        {
            new PersonInfo { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
            new PersonInfo { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
            new PersonInfo { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
        };
    }

    private async void PrintToPdf()
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Apply text footer to the PDF pages.
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            LeftText = "{date} - {time}",
            DrawDividerLine = true,
            RightText = "Page {page} of {total-pages}",
            Font = IronSoftware.Drawing.FontTypes.Arial,
            FontSize = 11
        };

        Parameters.Add("persons", persons);

        // Render Razor component to PDF and save it.
        PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters);
        File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData);
    }
}

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    @foreach (var person in persons)
    {
        <tr>
            <td>@person.Name</td>
            <td>@person.Title</td>
            <td>@person.Description</td>
        </tr>
    }
</table>

<button class="btn btn-primary" @onclick="PrintToPdf">Print to Pdf</button>

Cette méthode permet d'accéder à toutes les fonctionnalités de RenderingOptions. Ajoutez des en-têtes et pieds de page textuels et HTML, incluez des numéro de page et ajustez les dimensions et la mise en page. RenderingOptions prend en charge les marges personnalisées, les paramètres de viewport pour les conceptions réactives et les délais d'exécution JavaScript pour le contenu dynamique.

Pour les mises en page complexes ou les frameworks CSS comme Bootstrap, explorez les capacités de rendu CSS responsive pour vous assurer que les PDF s'affichent correctement sur différentes tailles de page.

Comment ajouter la navigation à mon composant Razor?

  • Naviguez jusqu'au "dossier partagé" et ouvrez NavMenu.razor. Ajoutez la section qui ouvrira notre composant Razor, Personne. Notre composant Personne sera la deuxième option.
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
    <nav class="flex-column">
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
                <span class="oi oi-home" aria-hidden="true"></span> Home
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="Person">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Person
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="counter">
                <span class="oi oi-plus" aria-hidden="true"></span> Counter
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="fetchdata">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
            </NavLink>
        </div>
    </nav>
</div>

Cette configuration de navigation s'intègre au système de routage de Blazor, permettant aux utilisateurs d'accéder à la fonctionnalité de génération de PDF depuis le menu de navigation principal de votre application. Le composant NavLink assure une mise en évidence correcte de l'itinéraire actif.

À quoi ressemble le processus de génération de PDF ?

Exécutez le projet et générez un document PDF. Cliquez sur le bouton "Imprimer au format PDF". IronPDF traite votre composant Razor, le convertit en HTML et le rend au format PDF à l'aide de son moteur de rendu basé sur Chrome. Cela permet de conserver la même fidélité visuelle que dans les navigateurs web modernes.

Visual Studio debugging Blazor app with PDF generation code using ChromePdfRenderer and Razor components

Le PDF généré s'enregistre dans le répertoire de sortie de votre projet. Personnalisez l'emplacement d'enregistrement, mettez en place des téléchargements directs par navigateur ou stockez les PDF dans un espace de stockage en nuage comme Azure Blob Storage. Pour les applications de production, mettez en place une gestion des erreurs et un retour d'information pour les utilisateurs dans les cas où la génération de PDF peut échouer ou dépasser la durée prévue.

Où puis-je télécharger un exemple de travail complet ?

Téléchargez le code complet de ce guide sous forme de fichier zippé. Ouvrez-le dans Visual Studio en tant que projet Blazor Server App. L'exemple inclut toutes les dépendances, les configurations et le code d'exemple pour commencer immédiatement avec la conversion Razor vers PDF dans les applications Blazor.

Téléchargez le projet d'exemple Blazor pour la conversion Razor en PDF

Prêt à voir ce que vous pouvez faire d'autre? Consultez notre page de tutoriels ici : Convertir les PDFs

Pour des scénarios plus avancés, consultez notre tutoriel Blazor couvrant des modèles d'intégration supplémentaires et les meilleures pratiques pour l'utilisation d'IronPDF dans les applications Blazor.

Questions Fréquemment Posées

Quel est le moyen le plus rapide de convertir un composant Razor en PDF dans Blazor Server ?

Le moyen le plus rapide consiste à utiliser la méthode RenderRazorComponentToPdf d'IronPDF. Avec une seule ligne de code, vous pouvez convertir n'importe quel composant Razor en PDF : var pdf = new IronPdf.ChromePdfRenderer().RenderRazorComponentToPdf(new Dictionary { {"persons",personsList} }).SaveAs("component-to-pdf.pdf") ;

Quels sont les packages NuGet nécessaires à la conversion de Razor en PDF dans Blazor Server ?

Vous avez besoin du package IronPdf.Extensions.Blazor, qui inclut automatiquement la bibliothèque principale IronPDF en tant que dépendance. Installez-le en utilisant : Installer-Package IronPdf.Extensions.Blazor

Puis-je ajouter des en-têtes et des pieds de page personnalisés lors de la conversion de composants Razor en PDF ?

Oui, IronPDF offre des options de personnalisation complètes pour les en-têtes, les pieds de page et le formatage des pages lors de l'utilisation de la méthode RenderRazorComponentToPdf pour convertir vos composants Razor.

Pourquoi Blazor Server est-il recommandé pour la génération de PDF à partir de composants Razor ?

Les applications Blazor Server s'exécutent sur le serveur et rendent les mises à jour de l'interface utilisateur via une connexion SignalR, ce qui les rend idéales pour la génération de PDF. Cette architecture garantit que le rendu d'IronPDF s'effectue côté serveur, offrant ainsi des résultats cohérents quel que soit le navigateur ou l'appareil du client.

Dois-je remanier mes composants Razor existants pour les convertir en PDF ?

Non, le package IronPdf.Extensions.Blazor vous permet de convertir des composants Razor existants en PDF sans refactorisation importante. L'extension fournit des points d'intégration qui comprennent le modèle de composant de Blazor.

Comment transmettre des données à mon composant Razor lors de la conversion en PDF ?

Vous pouvez transmettre des données à l'aide d'un paramètre Dictionary dans la méthode RenderRazorComponentToPdf. Par exemple : new Dictionary { {"persons", personsList} } où "persons" est le nom du paramètre et personsList vos données.

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 17,012,929 | Version : 2025.12 vient de sortir