Conversión de HTML a PDF en .NET Core Tutorial
IronPDF
Generador de PDF .NET Core
Crear archivos PDF en .NET Core es una tarea engorrosa. Trabajar con PDF en proyectos ASP.NET MVC, así como convertir vistas MVC, archivos HTML y páginas web en línea a PDF puede ser todo un reto. Este tutorial trabaja con la herramienta IronPDF para abordar estos problemas, proporcionando directrices instructivas para muchas de sus necesidades PDF .NET.
IronPDF también soporta la depuración de su HTML con Chrome para Pixel Perfect PDFs. Encontrará un tutorial para configurarlo aquí.
Cómo convertir HTML a PDF en .NET Core
- Descargar la biblioteca de C# para convertir HTML a PDF
- Utilice
RenderUrlAsPdf
para convertir URL web a PDF - Convierte cadenas HTML markdown a PDF con
RenderHtmlAsPdf
- Convierta las vistas MVC a PDF configuryo la función Modelo y Servicios clase
- Modify the HTML page to use the Modelo y invoke a method to pass the HTML to
RenderHtmlAsPdf
Visión general
Después de este tutorial, serás capaz de:
- Convierte a PDF desde diferentes fuentes como URL, HTML, vistas MVC
- Utiliza las opciones avanzadas para diferentes configuraciones de salida de PDF
- Implanta tu proyecto en Linux y Windows
- Trabajar con funciones de manipulación de documentos PDF
- Añadir encabezados y pies de página, fusionar archivos, añadir sellos
Trabaja con Dockers
Esta amplia gama de funciones de HTML a PDF de .NET Core le ayudará con toda una serie de necesidades de proyecto.
Primer paso
1. Instale la biblioteca IronPDF
Instalar con NuGet
Install-Package IronPdf
IronPDF puede instalarse y utilizarse en todos los tipos de proyectos .NET, como aplicaciones Windows, ASP.NET MVC y aplicaciones .NET Core.
Para añadir la librería IronPDF a nuestro proyecto tenemos dos formas, o bien desde el editor de Visual Studio instalar usando NuGet, o bien con una línea de comandos usando el gestor de consola de paquetes.
Instalación con NuGet
Para añadir la librería IronPDF a nuestro proyecto utilizando NuGet, podemos utilizar la interfaz visualizada (Gestor de paquetes NuGet) o mediante un comando de la consola del gestor de paquetes:
1.1.1 Uso del gestor de paquetes NuGet
1- Click derecho sobre el nombre del proyecto -> Seleccionar Manage NuGet Package![](/img/tutorials/dot-net-core/1.png)
![](/img/tutorials/dot-net-core/2.png)
![](/img/tutorials/dot-net-core/3.png)
![](/img/tutorials/dot-net-core/4.png)
1.1.2 Uso del gestor de la consola de paquetes NuGet
1- Desde Herramientas -> Gestor de Paquetes NuGet -> Consola del Gestor de Paquetes![](/img/tutorials/dot-net-core/5.png)
![](/img/tutorials/dot-net-core/6.png)
Tutoriales prácticos
## 2. Convertir página web a PDF Ejemplo: Aplicación de consola ConvertUrlToPdfSiga estos pasos para crear un nuevo proyecto Asp.NET MVC
![](/img/tutorials/dot-net-core/7.png)
![](/img/tutorials/dot-net-core/8.png)
![](/img/tutorials/dot-net-core/9.png)
![](/img/tutorials/dot-net-core/10.png)
![](/img/tutorials/dot-net-core/11.png)
![](/img/tutorials/dot-net-core/12.png)
![](/img/tutorials/dot-net-core/13.png)
7- Añadir nuestras primeras líneas que renderizan una página principal del sitio web Wikipedia a PDF
```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-1.cs ```8- Ejecute y compruebe el archivo creado wiki.pdf![](/img/tutorials/dot-net-core/14.png)
## 3. Convertir .NET Core HTML a PDF
Muestra: Aplicación de consola ConvertHTMLToPdf
Para convertir HTML en PDF tenemos dos formas:
1- Escribir HTML en cadena y luego renderizarlo
2- Escribir HTML en un archivo y pasarle la ruta a IronPDF para que lo renderice.
La representación del código de ejemplo de la cadena HTML tendrá el siguiente aspecto.
Y el PDF resultante tendrá este aspecto.
![](/img/tutorials/dot-net-core/15.png)
## 4. Convertir vista MVC a PDF **Ejemplo: TicketsApps .NET Core MVC Application** Pongamos un ejemplo de la vida real. He elegido un sitio de venta de entradas en línea. Abra el sitio, navegue hasta "reservar entrada", rellene la información requerida y, a continuación, descargue su copia en formato PDF. Vamos a seguir estos pasos: - [Crear un proyecto](#anchor-create-project) - [Crear un modelo de objetos cliente](#anchor-add-client-model) - [Crear servicios para clientes (añadir, ver)](#anchor-add-client-services) - [Diseño de la página de reserva de entradas](#anchor-design-ticket-booking-page) - [Validar y guardar la información de la reserva](#anchor-validate-and-save-the-booking-information) - [Descargar billete PDF](#anchor-download-pdf-ticket) ### Crear proyecto 1. Seleccione "ASP.NET Core Web App (Modelo-Vista-Controlador)".
![](/img/tutorials/dot-net-core/16.webp)
![](/img/tutorials/dot-net-core/17.webp)
![](/img/tutorials/dot-net-core/18.webp)
![](/img/tutorials/dot-net-core/19.webp)
![](/img/tutorials/dot-net-core/20.webp)
![](/img/tutorials/dot-net-core/21.webp)
![](/img/tutorials/dot-net-core/22.webp)
![](/img/tutorials/dot-net-core/23.webp)
![](/img/tutorials/dot-net-core/24.webp)
![](/img/tutorials/dot-net-core/25.webp)
![](/img/tutorials/dot-net-core/26.webp)
![](/img/tutorials/dot-net-core/27.webp)
![](/img/tutorials/dot-net-core/28.webp)
Ticket
![](/img/tutorials/dot-net-core/31.webp)
![](/img/tutorials/dot-net-core/32.webp)
![](/img/tutorials/dot-net-core/33.webp)
## 5. Tabla de opciones de renderizado de PDF de .NET Tenemos algunas opciones avanzadas que definen las opciones de renderizado del PDF, como el ajuste de los márgenes, orientación del papel, tamaño del papel, etc. A continuación encontrará un cuadro que ilustra las distintas opciones.
Clase | ChromePdfRenderer | |
---|---|---|
Descripción | Permite definir las opciones de impresión del PDF, como el tamaño del papel, los PPP, los encabezados y los pies de página. | |
Propiedades / funciones | Tipo | Descripción |
CustomCookies | Dictionary<cadena, cadena> | Cookies personalizadas para el renderizado HTML. Las cookies no persisten entre renderizaciones y deben configurarse cada vez. |
PaperFit | VirtualPaperLayoutManager | Un gestor para configurar diseños de papel virtual, controlando cómo se presentará el contenido en las páginas de "papel" PDF. Incluye opciones para Default Chrome Behavior, Zoomed, Responsive CSS3 Layouts, Scale-To-Page & Continuous Feed style PDF page setups. |
UseMarginsOnHeaderAndFooter | UseMargins | Utilizar los valores de margen del documento principal al representar los encabezados y pies de página. |
CreatePdfFormsFromHtml | bool | Convierte todos los elementos de formulario HTML en formularios PDF editables. El valor por defecto es true. |
CssMediaTipo | PdfCssMediaTipo | Enables Media="screen" CSS Styles and StyleSheets. Default value is PdfCssMediaTipo.Screen. |
CustomCssUrl | cadena | Permite aplicar una hoja de estilo CSS personalizada al HTML antes de la visualización. Puede ser una ruta de archivo local o una URL remota. Sólo aplicable al convertir HTML a PDF. |
Activar JavaScript | bool | Permite ejecutar JavaScript y JSON antes de renderizar la página. Ideal para imprimir desde aplicaciones Ajax / Angular. El valor por defecto es false. |
EnableMathematicalLaTex | bool | Permite la representación de elementos matemáticos LaTeX. |
Javascript | cadena | A custom JavaScript cadena to be executed after all HTML has loaded but before PDF rendering. |
JavascriptMessageListener | CadenaDelegate | Un método de devolución de llamada que se invocará cada vez que un mensaje de la consola JavaScript del navegador esté disponible. |
NúmeroPrimeraPágina | int | Número de la primera página que se utilizará en los encabezados y pies de página del PDF. El valor por defecto es 1. |
TablaDeContenidos | TablaDeContenidosTipos | Genera una tabla de contenidos en el lugar del documento HTML donde se encuentra un elemento con id "ironpdf-toc". |
Escala de grises | bool | Imprime un PDF en blanco y negro. El valor por defecto es false. |
Cabecera de texto | ICabecera de textoFooter | Establece el contenido del pie de página de cada página PDF como texto, admite la fusión de correo y convierte automáticamente las URL en hipervínculos. |
Pie de texto | ||
HtmlHeader | HtmlHeaderFooter | Establece el contenido de la cabecera de cada página PDF como HTML. Admite la fusión de correo. |
HtmlFooter | ||
Codificación de entrada | Codificación | The input character encoding as a cadena. Default value is Codificación.UTF8. |
MarginTop | doble | Margen superior del PDF "papel" en milímetros. Póngalo a cero para aplicaciones sin bordes y de impresión comercial. El valor por defecto es 25. |
MarginRight | doble | Margen derecho del PDF "papel" en milímetros. Póngalo a cero para aplicaciones sin bordes y de impresión comercial. El valor por defecto es 25. |
MarginBottom | doble | Margen "papel" inferior del PDF en milímetros. Póngalo a cero para aplicaciones sin bordes y de impresión comercial. El valor por defecto es 25. |
MargenIzquierdo | doble | Margen "papel" izquierdo del PDF en milímetros. Póngalo a cero para aplicaciones sin bordes y de impresión comercial. El valor por defecto es 25. |
Orientación del papel | PdfOrientación del papel | La orientación del papel PDF, como Vertical u Horizontal. El valor predeterminado es Vertical. |
TamañoPapel | PdfTamañoPapel | Establece el tamaño del papel |
SetCustomTamañoPapelinCentimeters | doble | Establece el tamaño del papel in centimeters. |
SetCustomTamañoPapelInInches | Establece el tamaño del papel in inches. | |
SetCustomTamañoPapelinMilimeters | Establece el tamaño del papel in millimeters. | |
SetCustomTamañoPapelinPixelsOrPoints | Establece el tamaño del papel in screen pixels or printer points. | |
PrintHtmlBackgrounds | Booleanoo | Indica si se imprimen los colores de fondo y las imágenes de HTML. El valor por defecto es true. |
RequestContext | RequestContexts | Contexto de la solicitud para este render, determinando el aislamiento de ciertos recursos como las cookies. |
Tiempo de espera | Entero | Tiempo de espera en segundos. El valor por defecto es 60. |
Título | Cadena | PDF Document Name and Título metadata, useful for mail-merge and automatic file naming in the IronPdf MVC and Razor extensions. |
ForceTamañoPapel | Booleanoo | Force page sizes to be exactly what is specified via IronPdf.ChromePdfRenderOptions.TamañoPapel by resizing the page after generating a PDF from HTML. Helps correct small errors in page size when rendering HTML to PDF. |
Espere en | Espere en | Un objeto envoltorio que contiene la configuración del mecanismo wait-for para que los usuarios esperen ciertos eventos antes de renderizar. Por defecto, no esperará nada. |
## 6. Tabla de opciones de encabezado y pie de página de PDF .NET
Clase | Encabezado de textoPie de página | |
---|---|---|
Descripción | Se utiliza para definir las opciones de visualización del encabezado y pie de texto | |
Propiedades \ funciones | Tipo | Descripción |
CentrarTexto | cadena | Set the text in centered/left/right of PDF header or footer. Can also merge metadata using cadenas placeholders: {page}, {total-pages}, {url}, {date}, {time}, {html-title}, {pdf-title} |
Textoizquierdo | ||
RightText | ||
DibujarLíneaDivisoria | Booleano | Añade una línea horizontal divisoria entre el encabezado/pie de página y el contenido de la página en cada página del documento PDF. |
DibujarLíneaDivisoriaColor | Color | The color of the divider line specified for IronPdf.Encabezado de textoPie de página.DibujarLíneaDivisoria. |
Fuente | PdfFuente | Fuente family used for the PDF document. Default is IronSoftware.Drawing.FuenteTipos.Helvetica. |
FuenteSize | Doble | Fuente size in pixels. |
## 7. Aplicar opciones de impresión PDF (renderizado) Intentemos configurar nuestras opciones de renderizado de PDF. ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-12.cs ```
## 8. Aplicaciones .NET Core en Docker ### 8.1. ¿Qué es Docker? Docker es un conjunto de productos de plataforma como servicio que utiliza la virtualización a nivel de sistema operativo para ofrecer software en paquetes denominados contenedores. Los contenedores están aislados unos de otros y agrupan su propio software, bibliotecas y archivos de configuración; pueden comunicarse entre sí a través de canales bien definidos. Más información [Aplicación Docker y ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/docker/building-net-docker-images) aquí. Vamos a pasar a trabajar con Docker, pero si quieres saber más, hay una gran introducción a [.NET y Docker aquí.](https://docs.microsoft.com/en-us/dotnet/core/docker/introduction) y aún más sobre cómo [crear contenedores para aplicaciones .NET core](https://docs.microsoft.com/en-us/dotnet/core/docker/build-container). Empecemos juntos con Docker. ### 8.2. Instalar Docker Visite el sitio web de Docker aquí para [instalar Docker.](https://www.docker.com/)
![](/img/tutorials/dot-net-core/40.png)
![](/img/tutorials/dot-net-core/41.png)
![](/img/tutorials/dot-net-core/42.png)
![](/img/tutorials/dot-net-core/43.png)
![](/img/tutorials/dot-net-core/44.png)
![](/img/tutorials/dot-net-core/45.png)
![](/img/tutorials/dot-net-core/46.png)
![](/img/tutorials/dot-net-core/47.png)
![](/img/tutorials/dot-net-core/38.png)
![](/img/tutorials/dot-net-core/39.png)
## 9. Trabajar con documentos PDF existentes ### 9.1. Abrir PDF existente Como se puede crear un PDF a partir de URL y HTML (texto o archivo)También puede trabajar con documentos PDF existentes. A continuación se muestra un ejemplo para abrir un PDF normal o un PDF cifrado con contraseña ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-13.cs ``` ### 9.2. Fusionar varios PDF Puedes fusionar varios PDF en uno solo de la siguiente manera: ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-14.cs ``` Añada otro PDF al final del PDF actual de la siguiente manera: ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-15.cs ``` Inserta un PDF en otro PDF empezando por el índice dado: ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-16.cs ``` ### 9.3 Añadir encabezados o pies de página Puede añadir encabezados y pies de página a un PDF existente o cuando renderice el PDF desde HTML o URL. Hay dos clases que puede utilizar para añadir encabezado o pie de página a un PDF: - TextHeaderFooter: añade texto simple en cabecera o pie de página. - HtmlHeaderFooter: añadir encabezado o pie de página con contenido HTML enriquecido e imágenes. Ahora veamos dos ejemplos de como añadir cabecera/pie a un pdf existente o cuando se renderiza usando estas dos clases. **9.3.1 Añadir cabecera al pdf** existente A continuación se muestra un ejemplo para cargar un PDF existente y, a continuación, añadir un encabezado y un pie de página mediante los métodos `AddTextHeaders` y `AddHtmlFooters`. ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-17.cs ``` **9.3.2 Añadir encabezado y pie de página a un nuevo pdf** A continuación se muestra un ejemplo para crear un PDF a partir de un archivo HTML y añadirle un encabezado y un pie de página utilizando las opciones de renderizado. ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-18.cs ```
## 10. Añadir contraseña PDF y seguridad Puede proteger su PDF con una contraseña y editar la configuración de seguridad del archivo, como impedir la copia y la impresión. ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-19.cs ```
## 11. Firmar PDF digitalmente También puedes firmar digitalmente un PDF de la siguiente manera: ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-20.cs ``` Ejemplo avanzado para un mayor control: ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-21.cs ``` ## 12. Extraer texto e imágenes de PDF Extraer texto e imágenes Con IronPdf puede extraer texto e imágenes de un PDF de la siguiente manera: ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-22.cs ``` ### 12.1. Rasterizar PDF a imagen También puedes convertir páginas PDF en imágenes de la siguiente manera ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-23.cs ```
## 13. Añadir marca de agua PDF The following is an example of how to watermark PDF pages. ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-24.cs ``` La marca de agua tiene un conjunto restringido de opciones y funciones. Para un mayor control, puede utilizar la clase **HTMLStamper**. ```cs :path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-25.cs ```
Acceso rápido a tutoriales
Obtener el código fuente
Acceda a todo el código fuente que se encuentra en este tutorial como un archivo ZIP de proyecto de Visual Studio, fácil de usar y compartir para su proyecto.
Obtener el códigoAcceso al tutorial de GitHub
Explore este tutorial y muchos más a través de GitHub. Utilizar los proyectos y el código fuente es la mejor manera de aprender y aplicarlo a sus propias necesidades y casos de uso de PDF .NET Core.
Generar PDFs en .NET Core TutorialConserve el PDF CSharp Cheat Sheet
Desarrolle PDFS en sus aplicaciones .NET utilizando nuestro práctico documento de referencia. Con acceso rápido a funciones y ejemplos comunes para generar y editar PDF en C# y VB.NET, esta herramienta para compartir le ayuda a ahorrar tiempo y esfuerzo al empezar a utilizar IronPDF y los requisitos comunes de PDF en su proyecto.
Guarde la chuletaMás documentación
Lea la Referencia de la API de IronPDF, que presenta exhaustivamente los detalles de todas las características de IronPDF, además de los espacios de nombres, clases, métodos, campos y enums.
Documentación de referencia de la API