Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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.
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.
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#.
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.
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.
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.
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.
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.
CSHTML5
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.
**IronPDF for .NET
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#:
El primer paso es instalarIronPDF del gestor de paquetes NuGet en su proyecto C#. Puede instalar IronPDF 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
A continuación, cree un archivo CSHTML que contenga el contenido que desea convertir a PDF. En este ejemplo, crearemos un simpleTutorial 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!
Guarde este archivo como "Hola.cshtml" en el directorio de su proyecto.
Archivos PDF en C#
Para convertir elCSHTML a PDF 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
Veamos este código paso a paso:
Index
, que simplemente devuelve una lista de elementos a una vista Razor.DownloadPDF
, que se encarga de generar el documento PDF.RenderRazorViewToPdf
para generar una vista Razor con datos en un archivo PDF.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.
IronPDF ofrece muchas opciones para personalizar la salida del archivo PDF. Puede configurar opciones comotamaño de página, márgenesorientación,encabezado y pie de páginay 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, //millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, //millimeters
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, //millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, //millimeters
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
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.**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ónRenderHtmlAsPdf con el mismo contenido HTML que antes. Por último, guardamos el documento PDF en un archivo llamado "Hola.PDF".
Con todo el código necesario en su lugar, ahora podemos probar la aplicación. Sigue estos pasos:
http://localhost:/Home/Index
, que es el número de puerto asignado por Visual Studio.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.
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:
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.
A continuación, tenemos que instalarPaquete NuGet IronPDF 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.
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".
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)
{
// Load the PDF file
PdfDocument pdf = PdfDocument.FromFile("sample.PDF");
// Convert the PDF to an HTML string
string html = pdf.ToHtml();
// Save the HTML string to the CSHTML file
}
}
}
using IronPdf;
namespace PdfToHtml
{
class Program
{
static void Main(string [] args)
{
// Load the PDF file
PdfDocument pdf = PdfDocument.FromFile("sample.PDF");
// Convert the PDF to an HTML string
string html = pdf.ToHtml();
// Save the HTML string to the CSHTML file
}
}
}
Imports IronPdf
Namespace PdfToHtml
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Load the PDF file
Dim pdf As PdfDocument = PdfDocument.FromFile("sample.PDF")
' Convert the PDF to an HTML string
Dim html As String = pdf.ToHtml()
' Save the HTML string to the CSHTML file
End Sub
End Class
End Namespace
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.
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 los formatos de archivo más comunes a un precio rebajado, 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.
9 productos API .NET para sus documentos de oficina