Cómo convertir Razor a PDF en Blazor Server usando C#

How to Convert Razor to PDF in Blazor Server

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

Un componente Razor es un elemento de interfaz de usuario, como una página, un diálogo o un formulario de entrada de datos, construido usando C# y la sintaxis Razor. Sirve como una pieza reutilizable de interfaz de usuario.

Blazor Server es un marco web que te permite construir interfaces web interactivas utilizando C# en lugar de JavaScript. En este marco, la lógica para los componentes se ejecuta en el servidor.

IronPDF te permite generar documentos PDF a partir de componentes Razor en un proyecto o aplicación de Blazor Server. Esto hace que la creación de archivos/páginas PDF sea sencilla en Blazor Server.

Puesta en marcha rápida: Convertir componente Razor a PDF en minutos

Convierte fácilmente componentes Razor a PDF en tus aplicaciones Blazor Server usando IronPDF. Con solo unas pocas líneas de código, el método RenderRazorComponentToPdf de IronPDF te permite transformar tus componentes Razor en PDFs de calidad profesional. Sigue esta guía rápida para integrar la conversión de Razor a PDF sin problemas en tu proyecto, permitiendo una renderización eficiente con una configuración mínima. Ideal para desarrolladores que buscan una implementación rápida, este método ofrece flexibilidad con opciones para una mayor personalización, asegurando un proceso de generación de PDF simple pero poderoso.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    // Install-Package IronPdf.Extensions.Blazor
    var pdf = new IronPdf.ChromePdfRenderer()
        .RenderRazorComponentToPdf<MyComponent>(new Dictionary<string,object> { {"persons",personsList} })
        .SaveAs("component‑to‑pdf.pdf");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Flujo de trabajo mínimo (5 pasos)

  1. Descargar la biblioteca C# para convertir Razor a PDF en Blazor Server
  2. Agregar una clase de modelo para los datos
  3. Crear un nuevo componente Razor y usar el método RenderRazorComponentToPdf
  4. Agregar una sección al menú izquierdo para acceder al nuevo componente Razor
  5. Descargar el proyecto de ejemplo para un inicio rápido

Paquete de extensión IronPDF

El paquete IronPdf.Extensions.Blazor es una extensión del paquete principal IronPdf. Se necesitan tanto los paquetes IronPdf.Extensions.Blazor como IronPdf para renderizar componentes Razor en documentos PDF en una aplicación Blazor Server.

Install-Package IronPdf.Extensions.Blazor
class="products-download-section">
data-modal-id="trial-license-after-download">
class="product-image"> C# NuGet Library for PDF
class="product-info">

Instalar con NuGet

class="copy-nuget-row">
Install-Package IronPdf.Extensions.Blazor
class="copy-button">
class="nuget-link">nuget.org/packages/IronPdf.Extensions.Blazor/

Renderizar componentes Razor a PDF

Se requiere un proyecto de aplicación Blazor Server para convertir componentes Razor en PDFs.

Añadir una clase modelo

Agregar una clase estándar de C# y nombrarla PersonInfo. Esta clase servirá como el modelo para almacenar información de personas. Inserta el siguiente código:

: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; }
    }
}
Namespace BlazorSample.Data
	Public Class PersonInfo
		Public Property Id() As Integer
		Public Property Name() As String
		Public Property Title() As String
		Public Property Description() As String
	End Class
End Namespace
$vbLabelText   $csharpLabel

Añadir un componente Razor

Usar el método RenderRazorComponentToPdf para convertir componentes Razor en PDFs. Accede a este método instanciando la clase ChromePdfRenderer. El método devuelve un objeto PdfDocument, que te permite exportar el documento PDF o modificarlo más.

The returned PdfDocument can undergo additional modifications, such as conversion to PDF/A or PDF/UA formats. You can also merge or split the PDF document, rotate its pages, and add annotations or bookmarks. Marcas de agua personalizadas también se pueden estampar en tu PDF.

Agregar un componente Razor y nombrarlo Person.razor. Ingresa el siguiente código:

@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>

Además, usar este método para generar un PDF te otorga acceso completo a todas las funciones en RenderingOptions. Esto incluye la capacidad de insertar texto, así como encabezados y pies de página HTML. Además, puedes agregar números de página y ajustar las dimensiones y el diseño de la página a tu gusto.

Añadir una sección al menú de la izquierda

  • Navega a la "carpeta compartida" y abre NavMenu.razor.
  • Agrega la sección que abrirá nuestro componente Razor, Person. Nuestro componente Person será la segunda opción.
<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>

Ejecutar el proyecto

Esto te mostrará cómo ejecutar el proyecto y generar un documento PDF.

Ejecutar Proyecto de Blazor Server

Descargar Blazor Server App Project

Puedes descargar el código completo de esta guía. Viene como un archivo comprimido que puedes abrir en Visual Studio como un proyecto de aplicación Blazor Server.

Descargar el Proyecto de Ejemplo de Blazor para la Conversión de Razor a PDF

¿Listo para ver qué más puedes hacer? Consulta nuestra página de tutoriales aquí: Convertir PDFs

Preguntas Frecuentes

¿Cómo puedes convertir componentes Razor a PDF en un proyecto Blazor Server?

Puedes usar el método `RenderRazorComponentToPdf` de IronPDF para convertir componentes Razor en documentos PDF en un proyecto Blazor Server.

¿Cuáles son los pasos clave para configurar la generación de PDFs a partir de componentes Razor?

Los pasos clave incluyen descargar la biblioteca IronPDF de NuGet, agregar una clase de modelo para datos, crear un componente Razor y usar el método `RenderRazorComponentToPdf` para la conversión.

¿Por qué necesitas el paquete IronPdf.Extensions.Blazor?

El paquete IronPdf.Extensions.Blazor es necesario para renderizar componentes Razor en documentos PDF en una aplicación Blazor Server.

¿Cómo instalas IronPdf.Extensions.Blazor en un proyecto Blazor Server?

Puedes instalar el paquete IronPdf.Extensions.Blazor usando NuGet con el comando: Install-Package IronPdf.Extensions.Blazor.

¿Qué funcionalidad proporciona el método `RenderRazorComponentToPdf`?

El método `RenderRazorComponentToPdf` convierte componentes Razor en documentos PDF, permitiendo modificaciones adicionales como la adición de anotaciones o marcadores.

¿Qué opciones están disponibles para personalizar documentos PDF en Blazor Server?

Las opciones de personalización incluyen insertar texto, agregar encabezados y pies de página en HTML, números de página y ajustar las dimensiones de la página usando RenderingOptions en IronPDF.

¿Cómo puedes integrar un componente Razor en el menú izquierdo de una App Blazor Server?

Para agregar un componente Razor al menú izquierdo, navega a la carpeta Shared, abre NavMenu.razor y añade una sección con un NavLink a tu componente.

¿Dónde puedes encontrar un proyecto de ejemplo para convertir componentes Razor a PDF?

Se puede descargar un código de proyecto de ejemplo completo como un archivo comprimido desde el sitio web de IronPDF y abrirlo en Visual Studio como un proyecto Blazor Server App.

¿Cuál es el papel de una clase de modelo en la conversión de componentes Razor a PDF?

Una clase de modelo, como `PersonInfo`, contiene los datos que se mostrarán en el componente Razor y es crucial para la generación de contenido dinámico en PDFs.

¿Cuáles son los beneficios de usar componentes Razor en Blazor Server?

Los componentes Razor permiten elementos de UI reutilizables construidos con C# y sintaxis Razor, habilitando UIs web interactivas con lógica del lado del servidor.

Compatibilidad con .NET 10: ¿Puedo usar IronPDF y el enfoque Razor-to-PDF en una aplicación Blazor Server orientada a .NET 10?

Sí. IronPDF es totalmente compatible con .NET 10; funciona a la perfección en proyectos .NET 10, al igual que en .NET 6, 7 u 8. Los métodos de conversión de Razor a PDF, incluido `RenderRazorComponentToPdf`, se pueden usar sin necesidad de soluciones alternativas especiales al trabajar con .NET 10.

Chaknith Bin
Ingeniero de Software
Chaknith trabaja en IronXL e IronBarcode. Tiene un profundo conocimiento en C# y .NET, ayudando a mejorar el software y apoyar a los clientes. Sus conocimientos derivados de las interacciones con los usuarios contribuyen a mejores productos, documentación y experiencia en general.
¿Listo para empezar?
Nuget Descargas 16,154,058 | Versión: 2025.11 recién lanzado