Saltar al pie de página
USANDO IRONPDF
Blazor HTML a PDF usando IronPDF

Crear un Archivo PDF con Tutorial para Blazor

IronPDF, una reconocida biblioteca de C#, funciona con aplicaciones Blazor. Esta reseña te guiará en el uso de IronPDF para incrustar un informe PDF en una aplicación Blazor, mostrando su integración impecable y efectividad.

1. Características de IronPDF

Los desarrolladores pueden crear, leer y procesar rápidamente un documento PDF con la ayuda de la robusta biblioteca IronPDF for .NET PDF. IronPDF tiene un motor de Chrome incorporado y ofrece una gran cantidad de capacidades prácticas y potentes. Estas incluyen la capacidad de convertir HTML5, JavaScript, CSS e imágenes a PDF, la capacidad de añadir encabezados y pies de página únicos a documentos PDF, y la capacidad de producir PDFs tal como aparecen en un navegador web. IronPDF es compatible con varias tecnologías web, incluidas HTML, ASPX, Razor Pages y marcos MVC.

Las características clave de IronPDF son las siguientes:

2. ¿Qué es Blazor?

Blazor es un Framework de Aplicaciones Web que hace posible crear Aplicaciones Web del lado del cliente en C# y HTML usando Web Assembly.

Las aplicaciones de Web Assembly se envían al navegador en un formato de instrucción binaria que puede operar a una velocidad cercana a nativa. Esto ha creado nuevas posibilidades para que lenguajes como C# se ejecuten dentro del navegador.

Crear un nuevo proyecto en Visual Studio

Para comenzar, abre la aplicación Microsoft Visual Studio y selecciona "Nuevo Proyecto" desde el menú Archivo. Luego, selecciona "Blazor Server App".

¡Crear un archivo PDF con Blazor Tutorial, Figura 1: Creando un nuevo proyecto en Visual Studio Creando un nuevo proyecto en Visual Studio

Ingresa un nombre de proyecto y selecciona una ruta de archivo. Luego, haz clic en el botón Create.

¡Crear un archivo PDF con Blazor Tutorial, Figura 2: Eligiendo el nombre y la ubicación de la nueva Aplicación Blazor Eligiendo el nombre y la ubicación de la nueva Aplicación Blazor

Selecciona el marco .NET deseado (utilizaremos .NET 6.0 en este tutorial), como se muestra en la captura de pantalla a continuación:

¡Crear un archivo PDF con Blazor Tutorial, Figura 3: Creando un Nuevo Proyecto en Visual Studio con el marco .NET 6.0 Creando un Nuevo Proyecto en Visual Studio con el marco .NET 6.0

Microsoft Visual Studio ahora generará la estructura para esta aplicación Blazor.

A continuación, añade la biblioteca IronPDF a este nuevo proyecto.

3. Instalar la biblioteca IronPDF

La Biblioteca IronPDF se puede descargar e instalar de cuatro maneras:

  • Usando el Administrador de Paquetes NuGet de Visual Studio
  • Usando la Línea de Comandos de Visual Studio
  • Descargando directamente desde el sitio web de NuGet
  • Descargando directamente desde el sitio web de IronPDF

3.1 Uso del gestor de paquetes NuGet de Visual Studio

Visual Studio proporciona el Administrador de Paquetes NuGet para ayudar en la instalación directa de bibliotecas en proyectos. La captura de pantalla a continuación muestra cómo abrir el Gestor de Paquetes NuGet.

¡Crear un Archivo PDF con Blazor Tutorial, Figura 4: Accediendo al Administrador de Paquetes NuGet de Visual Studio Accediendo al Administrador de Paquetes NuGet de Visual Studio

Usa el campo de búsqueda en la pestaña Examinar para buscar "IronPDF", como se muestra en la captura de pantalla a continuación:

¡Crear un Archivo PDF con Blazor Tutorial, Figura 5: Buscando la biblioteca IronPDF en la GUI del Administrador de Paquetes NuGet Buscando la biblioteca IronPDF en la GUI del Administrador de Paquetes NuGet

En la imagen anterior, se muestra la lista de resultados de búsqueda relacionados. Selecciona las opciones requeridas para instalar el paquete en tu proyecto.

3.2 Uso de la línea de comandos de Visual Studio

En Visual Studio, ve a Herramientas > Administrador de Paquetes NuGet > Consola del Administrador de Paquetes

Ingresa la siguiente línea en la pestaña de la Consola del Administrador de Paquetes:

Install-Package IronPdf

El paquete ahora se descargará e instalará en el proyecto actual.

¡Crear un Archivo PDF con Blazor Tutorial, Figura 6: Instalando la biblioteca IronPDF usando la Consola del Administrador de Paquetes NuGet Instalando la biblioteca IronPDF usando la Consola del Administrador de Paquetes NuGet

3.3 Descarga directa desde el sitio web de NuGet

La tercera forma de instalar la biblioteca IronPDF es descargar el paquete NuGet directamente desde el sitio web.

Navega al sitio web de NuGet para IronPDF.

  • Haz clic en la opción "Download Package" del menú en el lado derecho.
  • Abre el paquete descargado en tu sistema de archivos. Se instalará automáticamente.
  • Recarga la solución y empieza a usarla en tu proyecto.

3.4 Descarga directa desde el sitio web de IronPDF

Visita el sitio web de IronPDF para descargar el paquete IronPDF directamente.

Después de descargar, sigue estos pasos para añadir el paquete a tu proyecto:

  • Haz clic derecho en el proyecto desde la ventana de la solución.
  • Selecciona la opción "Agregar" > "Referencia" y luego navega a la ubicación de la biblioteca que descargaste anteriormente.
  • Haz clic en OK para agregar la biblioteca como referencia.

4. Crear documentos PDF en la aplicación Blazor Server

La aplicación Blazor en este tutorial usará IronPDF para obtener el contenido HTML de una página web por su URL y convertirlo en un documento PDF.

Introduce el siguiente código fuente en el archivo .razor contenido en el proyecto.

@using IronPdf

@code {
    /// <summary>
    /// This method exports data by converting a URL to a PDF file and initiating its download.
    /// </summary>
    public async Task ExportData()
    {
        try
        {
            string fileName = "Demo.pdf";
            var renderer = new ChromePdfRenderer();

            // Render the contents of the URL as a PDF document
            var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");

            // Save the PDF using a JavaScript function
            await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
        }
        catch (Exception ex)
        {
            // Handle any exceptions that may occur
            Console.Error.WriteLine($"Error in ExportData: {ex.Message}");
        }
    }
}
@using IronPdf

@code {
    /// <summary>
    /// This method exports data by converting a URL to a PDF file and initiating its download.
    /// </summary>
    public async Task ExportData()
    {
        try
        {
            string fileName = "Demo.pdf";
            var renderer = new ChromePdfRenderer();

            // Render the contents of the URL as a PDF document
            var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");

            // Save the PDF using a JavaScript function
            await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
        }
        catch (Exception ex)
        {
            // Handle any exceptions that may occur
            Console.Error.WriteLine($"Error in ExportData: {ex.Message}");
        }
    }
}
[using] ReadOnly Property code() As IronPdf
	''' <summary>
	''' This method exports data by converting a URL to a PDF file and initiating its download.
	''' </summary>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	public async Task ExportData()
'	{
'		try
'		{
'			string fileName = "Demo.pdf";
'			var renderer = New ChromePdfRenderer();
'
'			' Render the contents of the URL as a PDF document
'			var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");
'
'			' Save the PDF using a JavaScript function
'			await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
'		}
'		catch (Exception ex)
'		{
'			' Handle any exceptions that may occur
'			Console.@Error.WriteLine(string.Format("Error in ExportData: {0}", ex.Message));
'		}
'	}
End Property
$vbLabelText   $csharpLabel

El fragmento de código anterior usa dos métodos para generar documentos PDF desde HTML. El primero es el método RenderUrlAsPdf de IronPDF, que descarga el contenido HTML de una URL dada y lo convierte en formato PDF.

El segundo método es el método estático JSRuntime.InvokeVoidAsync, que activa el motor de JavaScript de un navegador para invocar una función de JavaScript dentro del ámbito de la página web que guarda el contenido PDF en un archivo en el sistema de archivos del cliente.

Esta función de JavaScript se incluye a continuación:

<script type="text/javascript">
    /**
     * Saves the PDF data as a file on the client's system.
     * @param {string} filename - The name of the file to be created.
     * @param {string} bytesBase64 - The Base64 encoded string of the PDF data.
     */
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            // Download the document in Microsoft Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
<script type="text/javascript">
    /**
     * Saves the PDF data as a file on the client's system.
     * @param {string} filename - The name of the file to be created.
     * @param {string} bytesBase64 - The Base64 encoded string of the PDF data.
     */
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            // Download the document in Microsoft Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
HTML

La función de JavaScript anterior recibe los datos Base64 de Blazor y los convierte en un blob antes de guardarlos en la ubicación del lado del cliente.

Alternativamente, el método SaveAs de la clase ChromePdfRenderer también se puede utilizar para guardar documentos PDF en el almacenamiento local del navegador.

5. Crear un documento PDF a partir de una cadena HTML

El siguiente fragmento de código muestra cómo convertir una cadena HTML en un documento.

@using IronPdf

@code {
    /// <summary>
    /// Demonstrates turning an HTML string into a PDF document.
    /// </summary>
    public void GeneratePdfFromHtmlString()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");

        // You can save the generated PDF locally
        pdf.SaveAs("HelloWorld.pdf");
    }
}
@using IronPdf

@code {
    /// <summary>
    /// Demonstrates turning an HTML string into a PDF document.
    /// </summary>
    public void GeneratePdfFromHtmlString()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");

        // You can save the generated PDF locally
        pdf.SaveAs("HelloWorld.pdf");
    }
}
[using] ReadOnly Property code() As IronPdf
	''' <summary>
	''' Demonstrates turning an HTML string into a PDF document.
	''' </summary>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	public void GeneratePdfFromHtmlString()
'	{
'		var renderer = New ChromePdfRenderer();
'		var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");
'
'		' You can save the generated PDF locally
'		pdf.SaveAs("HelloWorld.pdf");
'	}
End Property
$vbLabelText   $csharpLabel

El ejemplo anterior usa el método de instancia RenderHtmlAsPdf para transformar cualquier cadena de HTML en contenido PDF. Además, el método SaveAs se puede usar en los procedimientos descritos previamente para guardar este contenido en la computadora del cliente.

¡Crear un Archivo PDF con el Tutorial de Blazor, Figura 7: La Aplicación de Generación de PDF Blazor creada en este tutorial La Aplicación de Generación de PDF Blazor creada en este tutorial

La captura de pantalla anterior muestra la Aplicación Web que se desarrolló en este tutorial. Hacer clic en el botón de Descarga activará el código C# para producir el contenido PDF, y una función de JavaScript para descargar el contenido PDF en el lado del cliente.

Conclusión

Este artículo demostró cómo desarrollar una Aplicación Web Blazor que utiliza la biblioteca PDF IronPDF para generar archivos PDF desde páginas web.

IronPDF no es de código abierto, sin embargo, una clave de prueba gratuita te permite usarlo en producción sin marcas de agua.

Preguntas Frecuentes

¿Cómo puedo integrar una biblioteca PDF con una aplicación Blazor del lado del servidor?

Puedes integrar una biblioteca PDF con una aplicación Blazor del lado del servidor usando IronPDF. Primero, crea un proyecto Blazor en Visual Studio, luego instala la biblioteca IronPDF a través del Administrador de Paquetes NuGet o la línea de comandos. IronPDF te permite generar documentos PDF a partir de contenido HTML sin problemas.

¿Qué métodos están disponibles para generar PDFs desde HTML en una aplicación Blazor?

En una aplicación Blazor, puedes utilizar el método RenderUrlAsPdf de IronPDF para convertir URLs de páginas web en PDFs, o RenderHtmlAsPdf para generar PDFs directamente desde cadenas HTML. Estos métodos proporcionan flexibilidad para crear documentos PDF a partir de varias fuentes HTML.

¿Cómo puedo guardar un archivo PDF en el sistema de archivos del cliente en una aplicación Blazor?

Para guardar un archivo PDF en el sistema de archivos del cliente en una aplicación Blazor, puedes usar una función de JavaScript para convertir los datos PDF en un blob y disparar una descarga. IronPDF proporciona las herramientas necesarias para generar el PDF, que luego puede ser manejado usando JavaScript del lado del cliente.

¿Cuál es el proceso para crear un proyecto Blazor del lado del servidor en Visual Studio?

Crear un proyecto Blazor del lado del servidor en Visual Studio implica seleccionar 'Nuevo Proyecto' en el menú Archivo, elegir 'Blazor Server App', especificar el nombre y la ubicación del proyecto, y seleccionar la versión adecuada de .NET Framework. Esta configuración te permite integrar bibliotecas adicionales como IronPDF para una funcionalidad mejorada.

¿Puedo convertir contenido JavaScript y CSS dentro de HTML a PDF usando esta biblioteca?

Sí, puedes convertir contenido JavaScript y CSS dentro de HTML a PDF usando IronPDF. Soporta la renderización de contenido HTML5, CSS y JavaScript, permitiéndote generar documentos PDF comprensivos que mantienen el diseño y el estilo de las páginas web originales.

¿Cuáles son algunos pasos para resolver problemas si la generación de PDF no funciona como se esperaba en Blazor?

Si la generación de PDF no funciona como se esperaba en Blazor, asegúrate de que la biblioteca IronPDF está correctamente instalada en el proyecto. Verifica que el contenido HTML esté correctamente formateado y accesible. Además, revisa si hay errores de JavaScript en la consola del navegador que puedan afectar el proceso de renderización del PDF.

¿Cómo puedo asegurarme de que mis documentos PDF incluyan encabezados y pies de página al usar una biblioteca PDF?

Para incluir encabezados y pies de página en tus documentos PDF usando IronPDF, puedes configurar las opciones de renderización para añadir contenido de encabezado y pie de página personalizados. Esto te permite incluir información adicional como números de páginas o títulos en la salida PDF.

¿Es posible generar PDFs para páginas detrás de autenticación en una aplicación Blazor?

Sí, IronPDF puede generar archivos PDF para páginas tras autenticación en una aplicación Blazor. Deberá administrar las cookies o tokens de autenticación para acceder al contenido restringido antes de convertirlo a PDF con las funciones de la biblioteca.

¿IronPDF es compatible con .NET 10 y qué beneficios aporta su uso con .NET 10?

Sí, IronPDF es totalmente compatible con .NET 10: funciona de inmediato sin necesidad de soluciones alternativas personalizadas, calzas o API abandonadas. .NET 10 trae actualizaciones a ASP.NET Core y Blazor, incluido un rendimiento mejorado, una mejor administración de dependencias, un manejo mejorado de referencias del marco y un aislamiento de JavaScript mejorado, todo lo cual beneficia los flujos de trabajo de generación de PDF que utilizan páginas Razor, URL o contenido HTML.

¿Cómo mejora el uso de IronPDF con .NET 10 el rendimiento y la eficiencia del tiempo de ejecución?

El uso de IronPDF con .NET 10 aprovecha varias mejoras en tiempo de ejecución, como la desvirtualización de métodos de interfaz de matriz, el análisis de escape para estructuras, optimizaciones JIT mejoradas y la compatibilidad con instrucciones AVX-512. Estas mejoras reducen la asignación de memoria, la sobrecarga de recolección de elementos no utilizados y agilizan tareas como la representación de HTML y la manipulación de PDF.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más