USO DE IRONPDF

Cómo convertir CSHTML a PDF en C#

Actualizado 16 de mayo, 2023
Compartir:

La conversión de CSHTML a PDF es un requisito habitual en muchas aplicaciones. Esta tarea puede realizarse fácilmente utilizando la biblioteca IronPDF en C#.

IronPDF es una popular biblioteca .NET que permite a los desarrolladores crear, leer, editar y convertir documentos PDF mediante programación. En este artículo, le guiaremos a través de los pasos para convertir CSHTML a PDF con IronPDF en C#, junto con ejemplos.

Antes de empezar, vamos a discutir algunos conceptos importantes que son necesarios para este tutorial.

Conceptos importantes

Conversor PDF

Un conversor de PDF es una herramienta que convierte cualquier documento imprimible o página web en un documento PDF. Puede utilizarse para generar archivos PDF a partir de HTML, Word, Excel o cualquier otro documento imprimible. Los conversores de PDF se presentan en diversas formas, como herramientas en línea, software de escritorio y bibliotecas.

Razor View

Una vista Razor es un motor de vistas que se utiliza en ASP.NET Core para generar páginas HTML de forma dinámica. Es una sintaxis de marcado que combina el marcado HTML con el código C#.

Cómo convertir CSHTML a PDF en C#, Figura 1: Vista Razor

Vistaazor

Razor view facilita a los desarrolladores la creación de páginas web dinámicas al separar la lógica de presentación de la lógica de negocio.

Clase de controlador

Una clase controladora es una clase C# que gestiona las solicitudes HTTP entrantes en una aplicación ASP.NET Core. Contiene métodos que corresponden a verbos HTTP específicos (por ejemplo, GET, POST, PUT, DELETE)y devuelve una respuesta HTTP.

Gestor de paquetes NuGet

NuGet Package Manager es una herramienta que se utiliza en Visual Studio para gestionar paquetes en proyectos .NET. Facilita a los desarrolladores la instalación, actualización y desinstalación de paquetes en sus proyectos. Los paquetes NuGet son bibliotecas que contienen código reutilizable y se distribuyen a través del gestor de paquetes NuGet.

Inyección de dependencia

La inyección de dependencias es un patrón de diseño que permite a los desarrolladores desacoplar los componentes de sus aplicaciones inyectando dependencias en sus clases. Facilita las pruebas y el mantenimiento de las aplicaciones al reducir las dependencias y hacer el código más modular.

Ahora que hemos cubierto los conceptos importantes, vamos a sumergirnos en el proceso de conversión de CSHTML a PDF utilizando IronPDF.

¿Qué es CSHTML?

CSHTML son las siglas de C# Razor Syntax HTML. Es un tipo de archivo que contiene tanto marcas HTML como código C#. Estos archivos se utilizan en las aplicaciones AS.NET Core MVC para definir la interfaz de usuario de las páginas web. El motor de vista Razor se utiliza para interpretar los archivos CSHTML y generar una salida HTML que pueda ser renderizada por un navegador web.

Cómo convertir CSHTML a PDF en C#, Figura 2: CSHTML5

CSHTML5

¿Qué es IronPDF?

IronPDF es una potente biblioteca .NET que permite a los desarrolladores crear, leer, editar y convertir documentos PDF en C#. Se trata de una popular herramienta para generar documentos PDF mediante programación en aplicaciones .NET. IronPDF es compatible con una amplia gama de funciones, como la generación de PDF, la manipulación de PDF, la conversión de PDF y el renderizado de PDF.

Cómo convertir CSHTML a PDF en C#, Figura 3: IronPDF for .NET

**IronPDF for .NET

Cómo convertir CSHTML cadena HTML a archivos PDF con IronPDF en C#

Convertir CSHTML a PDF con IronPDF es un proceso sencillo. La biblioteca ofrece una práctica API para convertir archivos HTML en documentos PDF. Aquí están los pasos para convertir CSHTML a PDF con IronPDF en C#:

Paso 1 Instalar IronPDF

El primer paso es instalar IronPDF en su proyecto C#. Puede instalar IronPDF mediante el gestor de paquetes NuGet o descargando el archivo IronPDF.dll y añadiéndolo a las referencias de su proyecto. Para instalar IronPDF mediante el gestor de paquetes NuGet, abra la consola del gestor de paquetes y ejecute el siguiente comando

Install-Package IronPdf

Paso 2 Crear un archivo CSHTML

A continuación, cree un archivo CSHTML que contenga el contenido que desea convertir a PDF. En este ejemplo, crearemos un simple CSHTML que muestra el texto "Hello, World!".

@{
    Layout = null;
}
    Hello
    Hello, World!
@{
    Layout = null;
}
    Hello
    Hello, World!
@
If True Then
	Layout = Nothing
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'	Hello Hello, World!
VB   C#

Guarde este archivo como "Hola.cshtml" en el directorio de su proyecto.

Cómo convertir CSHTML a PDF en C#, Figura 4: Archivos PDF en C#

Archivos PDF en C#

Paso 3 Convertir CSHTML en documento PDF

Para convertir el CSHTML a PDF, utilizaremos la biblioteca IronPDF en C#. Este es el código para convertir "Hola.cshtml" a PDF:

using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace CSHTMLtoPDF.Controllers
{
    public class HomeController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        public HomeController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public IActionResult Index()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };
            return View(items);
        }

        public IActionResult DownloadPDF()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };

            ChromePdfRenderer renderer = new ChromePdfRenderer();
            PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);

            var contentDisposition = new Syste.NET.Mime.ContentDisposition
            {
                FileName = "Items.pdf",
                Inline = false,
            };
            Response.Headers.Add("Content-Disposition", contentDisposition.ToString());

            return File(pdf.BinaryData, "application/pdf");
        }
    }
}
using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace CSHTMLtoPDF.Controllers
{
    public class HomeController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        public HomeController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public IActionResult Index()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };
            return View(items);
        }

        public IActionResult DownloadPDF()
        {
            var items = new [] { "Item 1", "Item 2", "Item 3" };

            ChromePdfRenderer renderer = new ChromePdfRenderer();
            PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);

            var contentDisposition = new Syste.NET.Mime.ContentDisposition
            {
                FileName = "Items.pdf",
                Inline = false,
            };
            Response.Headers.Add("Content-Disposition", contentDisposition.ToString());

            return File(pdf.BinaryData, "application/pdf");
        }
    }
}
Imports System.IO
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Namespace CSHTMLtoPDF.Controllers
	Public Class HomeController
		Inherits Controller

		Private ReadOnly _viewRenderService As IRazorViewRenderer
		Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
			_viewRenderService = viewRenderService
		End Sub

		Public Function Index() As IActionResult
			Dim items = { "Item 1", "Item 2", "Item 3" }
			Return View(items)
		End Function

		Public Function DownloadPDF() As IActionResult
			Dim items = { "Item 1", "Item 2", "Item 3" }

			Dim renderer As New ChromePdfRenderer()
			Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items)

			Dim contentDisposition = New Syste.NET.Mime.ContentDisposition With {
				.FileName = "Items.pdf",
				.Inline = False
			}
			Response.Headers.Add("Content-Disposition", contentDisposition.ToString())

			Return File(pdf.BinaryData, "application/pdf")
		End Function
	End Class
End Namespace
VB   C#

Veamos este código paso a paso:

  • Primero importamos los espacios de nombres necesarios, incluido el espacio de nombres IronPDF, que contiene la funcionalidad de conversión de HTML a PDF.
  • A continuación, definimos el método Index, que simplemente devuelve una lista de elementos a una vista Razor.
  • Definimos el método DownloadPDF, que se encarga de generar el documento PDF.
  • Empezaremos creando un renderizador Renderizador de PDF cromado.
  • A continuación, utilice el método de extensión RenderRazorViewToPdf para generar una vista Razor con datos en un archivo PDF.
  • A continuación, configuramos las cabeceras Content-Disposition para forzar la descarga del PDF en lugar de su visualización en el navegador.
  • Por último, devolvemos el documento PDF como un archivo utilizando el método File.

    Este es el código básico para convertir CSHTML a PDF con IronPDF en C#. Sin embargo, hay muchas opciones y configuraciones que puede utilizar para personalizar el resultado PDF. Veamos algunas de estas opciones.

Personalización del archivo de retorno de salida PDF

IronPDF ofrece muchas opciones para personalizar la salida del archivo PDF. Puede configurar opciones como tamaño de página, márgenesorientación, encabezado y pie de página y mucho más. He aquí un ejemplo de cómo personalizar la salida PDF:

using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string [] args)
        {
            var renderer = new ChromePdfRenderer();
            renderer.RenderingOptions.MarginTop = 10;
            renderer.RenderingOptions.MarginBottom = 10;
            renderer.RenderingOptions.MarginLeft = 20;
            renderer.RenderingOptions.MarginRight = 20;
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
            {
                MaxHeight = 20, //milímetros
                HtmlFragment = "<img src='logo.png'>",
                BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
            };
            renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
            {
                MaxHeight = 15, //milímetros
                HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
                DrawDividerLine = true
            };
            var pdf = renderer.RenderHtmlAsPdf("\r\n\r\n\r\n    \r\n    Hello\r\n\r\n\r\n    Hello, World!\r\n\r\n");
            pdf.SaveAs("Hello.PDF");
        }
    }
}
using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string [] args)
        {
            var renderer = new ChromePdfRenderer();
            renderer.RenderingOptions.MarginTop = 10;
            renderer.RenderingOptions.MarginBottom = 10;
            renderer.RenderingOptions.MarginLeft = 20;
            renderer.RenderingOptions.MarginRight = 20;
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
            {
                MaxHeight = 20, //milímetros
                HtmlFragment = "<img src='logo.png'>",
                BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
            };
            renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
            {
                MaxHeight = 15, //milímetros
                HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
                DrawDividerLine = true
            };
            var pdf = renderer.RenderHtmlAsPdf("\r\n\r\n\r\n    \r\n    Hello\r\n\r\n\r\n    Hello, World!\r\n\r\n");
            pdf.SaveAs("Hello.PDF");
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronPdf

Namespace ConsoleApp
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim renderer = New ChromePdfRenderer()
			renderer.RenderingOptions.MarginTop = 10
			renderer.RenderingOptions.MarginBottom = 10
			renderer.RenderingOptions.MarginLeft = 20
			renderer.RenderingOptions.MarginRight = 20
			renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
				.MaxHeight = 20,
				.HtmlFragment = "<img src='logo.png'>",
				.BaseUrl = (New Uri("C:\assets\images\")).AbsoluteUri
			}
			renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
				.MaxHeight = 15,
				.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
				.DrawDividerLine = True
			}
			Dim pdf = renderer.RenderHtmlAsPdf(vbCrLf & vbCrLf & vbCrLf & "    " & vbCrLf & "    Hello" & vbCrLf & vbCrLf & vbCrLf & "    Hello, World!" & vbCrLf & vbCrLf)
			pdf.SaveAs("Hello.PDF")
		End Sub
	End Class
End Namespace
VB   C#

En este ejemplo, primero creamos una instancia de la clase ChromePdfRenderer. A continuación, establecemos varias opciones utilizando la propiedad RenderingOptions de la clase ChromePdfRenderer. Estas son algunas de las opciones que configuramos:

  • PaperSize: Establece el tamaño del papel del documento PDF en A4.
  • MarginTop, MarginBottom, MarginLeft, MarginRight: Establece los márgenes del documento PDF en 10 mm en la parte superior e inferior y 20 mm en la izquierda y derecha.
  • **Encabezado HTML: Establece el encabezado del documento PDF para mostrar el título del documento y una línea divisoria.
  • **Pie de página HTML: Establece el pie de página del documento PDF para mostrar el número de página, el total de páginas y la fecha actual.

    Después de configurar las opciones, llamamos a la función RenderHtmlAsPdf con el mismo contenido HTML que antes. Por último, guardamos el documento PDF en un archivo llamado "Hola.PDF".

Probar la aplicación

Con todo el código necesario en su lugar, ahora podemos probar la aplicación. Sigue estos pasos:

  • Ejecute la aplicación pulsando F5 o haciendo clic en el botón verde "Reproducir" de Visual Studio.
  • En su navegador web, vaya a http://localhost:/Home/Index, que es el número de puerto asignado por Visual Studio.
  • Compruebe que la lista de elementos se muestra correctamente.
  • Haga clic en el enlace "Descargar PDF" para generar y descargar el documento PDF.

    Si todo funciona correctamente, debería ver un documento PDF con la lista de elementos que definió anteriormente.

Convertir un PDF en un archivo CSHTML con IronPDF

Cómo convertir CSHTML a PDF en C#, Figura 7: PDF a CSHTML

De PDF a CSHTML

Para demostrar cómo convertir un PDF en un archivo CSHTML con IronPDF, crearemos una nueva aplicación de consola en Visual Studio y utilizaremos IronPDF para convertir un documento PDF de muestra en un archivo CSHTML. Siga estos pasos:

Paso 1 Crear una nueva aplicación de consola

Abra Visual Studio y cree una nueva aplicación de consola seleccionando "Archivo > Nuevo > Proyecto" en el menú y, a continuación, "Aplicación de consola". (.NET Framework)" o "Consola App (.NET Core)" de la lista de plantillas de proyecto.

Paso 2 Instale el paquete NuGet IronPDF

A continuación, tenemos que instalar el paquete IronPDF NuGet en nuestra aplicación de consola. Para ello, haga clic con el botón derecho del ratón en el proyecto en el Explorador de soluciones y seleccione "Gestionar paquetes NuGet" en el menú contextual.

En el gestor de paquetes NuGet, busque "IronPDF" y seleccione el paquete "IronPDF" de los resultados de la búsqueda. Pulse el botón "Instalar" para instalar el paquete y sus dependencias.

Paso 3 Añadir archivos PDF y CSHTML al proyecto

Para este ejemplo, utilizaremos un archivo PDF de muestra que queremos convertir en un archivo CSHTML. Puede utilizar cualquier archivo PDF que desee para este paso.

Añada el archivo PDF al proyecto haciendo clic con el botón derecho en el proyecto en el Explorador de soluciones y seleccionando "Añadir > Elemento existente" en el menú contextual.

También necesitamos crear un archivo CSHTML vacío que utilizaremos para almacenar la cadena HTML convertida. Para ello, haga clic con el botón derecho del ratón en el proyecto en el Explorador de soluciones y seleccione "Añadir > Nuevo elemento" en el menú contextual. Seleccione "Página HTML" en la lista de plantillas y, a continuación, asigne un nombre al archivo (por ejemplo, "convertido.cshtml") y haga clic en "Añadir".

Paso 4 Convertir el PDF en un archivo CSHTML

Con los archivos necesarios en su lugar, ahora podemos escribir el código para convertir el PDF a un archivo CSHTML utilizando IronPDF. Añade el siguiente código al método Main de tu aplicación de consola:

using IronPdf;

namespace PdfToHtml
{
    class Program
    {
        static void Main(string [] args)
        {
            //  Cargar el archivo PDF
            PdfDocument pdf = PdfDocument.FromFile("sample.PDF");

            //  Convertir el PDF en una cadena HTML
            string html = pdf.ToHtml();

            //  Guardar la cadena HTML en el archivo CSHTML
        }
    }
}
using IronPdf;

namespace PdfToHtml
{
    class Program
    {
        static void Main(string [] args)
        {
            //  Cargar el archivo PDF
            PdfDocument pdf = PdfDocument.FromFile("sample.PDF");

            //  Convertir el PDF en una cadena HTML
            string html = pdf.ToHtml();

            //  Guardar la cadena HTML en el archivo CSHTML
        }
    }
}
Imports IronPdf

Namespace PdfToHtml
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			'  Cargar el archivo PDF
			Dim pdf As PdfDocument = PdfDocument.FromFile("sample.PDF")

			'  Convertir el PDF en una cadena HTML
			Dim html As String = pdf.ToHtml()

			'  Guardar la cadena HTML en el archivo CSHTML
		End Sub
	End Class
End Namespace
VB   C#

¿Por qué utilizar IronPDF?

IronPDF es una opción popular entre los desarrolladores .NET por varias razones clave:

**Potentes funciones de generación de PDF: IronPDF proporciona una amplia gama de características y opciones para crear y manipular documentos PDF mediante programación, incluyendo la capacidad de añadir texto, imágenes y otros contenidos a las páginas PDF, así como la capacidad de combinar y dividir documentos PDF existentes.

Versátil Conversión de PDF capacidades**: IronPDF no sólo permite a los desarrolladores generar documentos PDF, sino que también proporciona funcionalidad para convertir PDFs a cadenas HTML o archivos CSHTML. Esto puede ser útil en situaciones en las que necesite mostrar contenido PDF en una aplicación Web o extraer datos de documentos PDF y utilizarlos en un flujo de trabajo basado en Web.

**API fácil de usar: La API de IronPDF está diseñada para ser intuitiva y fácil de usar, con una amplia gama de métodos y propiedades de ayuda que facilitan a los desarrolladores la generación y manipulación de documentos PDF mediante programación.

Fuerte comunidad soporte: IronPDF cuenta con una amplia y activa comunidad de desarrolladores .NET que contribuyen a su desarrollo y proporcionan soporte a otros desarrolladores que utilizan la librería.

Buena documentación: La documentación de IronPDF es extensa y está bien organizada, con documentación detallada de referencia de la API, tutoriales y ejemplos que facilitan a los desarrolladores iniciarse y aprender a utilizar la biblioteca.

La combinación de potentes funciones de generación y conversión de PDF, API fácil de usar, fuerte apoyo de la comunidad y buena documentación hacen de IronPDF una opción popular entre los desarrolladores .NET que necesitan trabajar con documentos PDF en sus aplicaciones.

Conclusión

La conversión de CSHTML a PDF es un requisito habitual en muchas aplicaciones. Con IronPDF, esta tarea puede realizarse fácilmente en C#. En este artículo, le guiamos a través de los pasos para convertir CSHTML a PDF con IronPDF, junto con ejemplos.

También le mostramos cómo personalizar la salida PDF configurando varias opciones, como el tamaño del papel, los márgenes, el encabezado y el pie de página, etc. Con IronPDF, puede crear documentos PDF de alta calidad a partir de sus archivos CSHTML de forma rápida y sencilla.

Si necesita crear documentos PDF desde cero, convertir PDF a cadenas HTML o archivos CSHTML, o extraer datos de documentos PDF, IronPDF proporciona una API flexible e intuitiva que facilita la realización del trabajo.

Gracias al fuerte apoyo de la comunidad y a su amplia documentación, IronPDF es una opción popular entre los desarrolladores .NET que necesitan trabajar con archivos PDF en sus aplicaciones. Además, al adquirir el paquete Iron Software, los desarrolladores pueden acceder a un completo conjunto de bibliotecas .NET para trabajar con formatos de archivo comunes a un precio con descuento, lo que lo convierte en un valor excelente para cualquier equipo de desarrollo .NET.

Si necesita trabajar con documentos PDF en sus aplicaciones .NET, sin duda merece la pena tener en cuenta IronPDF. Gracias a sus potentes funciones, su facilidad de uso y las distintas opciones de licencia, es una herramienta versátil y fiable que puede ayudarle a realizar su trabajo con rapidez y eficacia.

< ANTERIOR
Cómo combinar archivos PDF en VB.NET
SIGUIENTE >
Cómo guardar un archivo PDF en C# (Tutorial para principiantes)

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123