Páginas ASPX a PDF en ASP.NET
Este tutorial de ASPX a PDF le guiará paso a paso sobre cómo convertir ASPX a PDF: guardar una página ASPX como PDF en aplicaciones web ASP.NET.
Los usuarios nunca deberían tener que abrir el archivo ASPX con la extensión de archivo .aspx en Google Chrome. Pedimos a nuestro equipo de ingeniería que convierta ASPX a PDF automáticamente utilizando código .NET. ¡Nunca necesitamos presionar CTRL P! Hay una forma basada en servidor para convertir medios de internet ASPX y guardar como PDF.
Aplique configuraciones que incluyen establecer el comportamiento y los nombres de los archivos, añadir encabezados y pies de página, cambiar las opciones de impresión, añadir saltos de página, combinar Async y Multithreading y mucho más.
Visión general
Converting ASPX files to PDF in simple steps
- Descargar la Biblioteca ASPX a PDF C#
- Elija sus páginas ASPX
- Convertir un archivo ASPX a PDF
- Aplicar la configuración del conversor ASPX a PDF y añadir encabezados y pies de página
- Crear saltos de página en archivos PDF
Cómo convertir archivos ASPX a PDF
Las aplicaciones de formularios web de Microsoft para ASP.NET se utilizan habitualmente en el desarrollo de sofisticados sitios web, banca en línea, intranets y sistemas de contabilidad. Una característica común de los sitios web ASP.NET (ASPX) es la generación de archivos PDF dinámicos, como facturas, boletos o informes de gestión para que los usuarios los descarguen en formato PDF.
Este tutorial muestra cómo usar el componente de software IronPDF for .NET para convertir cualquier formulario web ASP.NET en un PDF (ASP.NET a PDF). El HTML, que normalmente se representa como una página web, se utilizará para representar un PDF para su descarga o visualización en un navegador web. El proyecto fuente adjunto le mostrará cómo convertir una página web a PDF en ASP.NET utilizando C#.
Logramos esta conversión de HTML a PDF (convertir ASPX a PDF) al renderizar páginas web utilizando IronPDF y su clase de herramientas AspxToPdf.
Primer paso
Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.
1. Instale el convertidor de archivos ASPX gratuito de IronPDF
Instalación mediante NuGet
En Visual Studio, haz clic con el botón derecho del ratón en el explorador de soluciones de tu proyecto y selecciona "Gestionar paquetes NuGet...". A partir de ahí, sólo tienes que buscar IronPDF e instalar la última versión... haga clic en Aceptar en los cuadros de diálogo que aparezcan.
Esto funcionará en cualquier proyecto C# .NET Framework a partir de Framework 4 y superiores, o .NET Core 2 y superiores. También funcionará igual de bien en proyectos VB.NET.
Install-Package IronPdf
https://www.nuget.org/packages/IronPdf
Instalación mediante DLL
Alternativamente, la DLL de IronPDF puede descargarse e instalarse manualmente en el proyecto o GAC desde https://ironpdf.com/packages/IronPdf.zip
Recuerda agregar esta declaración en la parte superior de cualquier archivo de clase cs que utilice IronPDF:
utilizando IronPdf;
Tutoriales
2. Convertir páginas web ASP.NET a PDF
Comenzamos con un "Formulario Web" ASPX normal, que se renderiza como HTML. Más tarde convertimos la página ASPX al formato de archivo PDF.
En el código fuente de ejemplo adjunto, representamos una factura comercial "Factura.aspx", una simple factura comercial HTML representada como una página ASP.NET.
La página HTML contiene hojas de estilo CSS3 y también puede incluir imágenes y javascript.
Para renderizar esta página web ASP.NET en un PDF en lugar de HTML, necesitamos abrir el código C# (o VB.NET) y agregar esto al evento Page_Load:
:path=/static-assets/pdf/content-code-examples/tutorials/aspx-to-pdf-1.cs
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
Esto es todo lo que se necesita; el HTML se muestra ahora como un PDF. Se conservan los hipervínculos, las hojas de estilo, las imágenes e incluso los formularios HTML. Este resultado es muy similar al que se obtendría si el propio usuario imprimiera el HTML en un PDF en su navegador. IronPDF se basa en la tecnología de navegador web Chromium que impulsa Google Chrome.
El código C# completo se lee así en su totalidad: Convertir la página ASPX como PDF en Active Server Pages.
:path=/static-assets/pdf/content-code-examples/tutorials/aspx-to-pdf-2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using IronPdf;
namespace AspxToPdfTutorial
{
public partial class Invoice : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports IronPdf
Namespace AspxToPdfTutorial
Partial Public Class Invoice
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
End Sub
End Class
End Namespace
3. Aplicar la configuración del convertidor de archivos ASPX a PDF
Hay muchas opciones que ajustar y perfeccionar cuando convertimos un archivo ASPX a PDF generado con .NET Web Forms.
Estas opciones están documentadas completamente en línea en https://ironpdf.com/object-reference/api/IronPdf.AspxToPdf.html
3.1. Establecer el comportamiento del archivo PDF
El comportamiento del archivo "InBrowser" intenta mostrar el PDF directamente en el navegador del usuario. Esto no siempre es posible en todos los navegadores web, pero suele ser una característica común de los navegadores modernos que cumplen los estándares.
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
El comportamiento del archivo "Attachment" provoca que el PDF se descargue.
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment);
3.2. Establecer nombre de archivo PDF
También podemos establecer el nombre de archivo del documento PDF añadiendo un parámetro adicional. Esto significa que podemos controlar el nombre del archivo cuando el usuario decide descargarlo o guardarlo. Cuando guardemos la página ASPX como PDF, se dará este nombre al documento PDF.
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf");
3.3. Cambiar las opciones de impresión de PDF
Podemos controlar la salida del PDF añadiendo una instancia de la clase IronPdf.ChromePdfRenderer:
https://ironpdf.com/object-reference/api/IronPdf.ChromePdfRenderer.html
:path=/static-assets/pdf/content-code-examples/tutorials/aspx-to-pdf-3.cs
var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
{
EnableJavaScript = false,
//.. many more options available
};
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {.EnableJavaScript = False}
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions)
Las opciones de representación de PDF disponibles incluyen:
- ApplyMarginToHeaderAndFooter. Aplicar la opción de margen a los encabezados y pies de página HTML. por defecto es false, lo que hace que los encabezados y pies de página HTML tengan margen 0. Sólo admite ChromeRender.
- CreatePdfFormsFromHtml. Convierte elementos de formulario ASPX en formularios PDF editables.
- CssMediaType. Habilita Media="screen" o "print" para Estilos CSS y Hojas de Estilo CSS3.
- CustomCssUrl. Permite aplicar una hoja de estilo CSS personalizada a HTML por URL.
- EnableJavaScript. Permite JavaScript, jQuery e incluso código Json dentro de la página ASPX. Puede ser necesario aplicar un RenderDelay.
- PrimerNúmeroDePágina. Número de primera página para Encabezado y Pie de página. El valor por defecto es 1.
- FitToPaperWidth. Siempre que sea posible, reduce el contenido del PDF a una anchura de 1 página de papel virtual.
- GenerateUniqueDocumentIdentifiers. Establézcalo en false si desea utilizar la igualdad de archivos binarios para comparar archivos PDF, como en el caso de las pruebas unitarias.
- GrayScale. Imprime un PDF en escala de grises en vez de a todo color.
- HtmlHeader. Establece el contenido del encabezado para cada página PDF utilizando cadenas de contenido o incluso HTML.
- EncabezadoDeTexto. Establece el contenido del pie de página de cada página PDF como texto. Admite "mail-merge" y convierte automáticamente las urls en hipervínculos.
- HtmlFooter. Establece el contenido del pie de página para cada página PDF utilizando cadenas de contenido o incluso HTML.
- TextFooter. Establece el contenido del encabezado de cada página PDF como texto. Admite "mail-merge" y convierte automáticamente las urls en hipervínculos.
- InputEncoding. La codificación de caracteres de entrada como cadena. UTF-8 es el predeterminado para ASP.NET.
- MarginBottom. Margen inferior del papel PDF en milímetros. Póngalo a cero para un pdf sin bordes.
- MarginLeft. Margen izquierdo del papel PDF en milímetros. Póngalo a cero para un pdf sin bordes.
- MarginRight. Margen derecho del papel PDF en milímetros. Póngalo a cero para un pdf sin bordes.
- MarginTop. PDF superior Margen del papel en milímetros. Póngalo a cero para un pdf sin bordes.
- PaperOrientation. La orientación del papel PDF. Horizontal o Vertical.
- TamañoDePapel. Establecer un tamaño de papel de salida para las páginas PDF utilizando System.Drawing.Printing.PaperKind. Alternativamente, los desarrolladores pueden usar el método SetCustomPaperSize(int width, int height) para crear tamaños personalizados.
- PrintHtmlBackgrounds. Imprime fondos de imagen HTML.
- RenderDelay. Milisegundos a esperar después de que HTML es renderizado antes de imprimir para que Javacsript o JSON tengan tiempo de trabajar.
- Timeout. Tiempo de espera en segundos.
- Título. Metadatos 'Título' del documento PDF.
- ViewPortHeight. Define una altura de pantalla virtual utilizada para renderizar HTML a PDF en IronPdf. Medido en píxeles.
- ViewPortWidth. Define un ancho de pantalla virtual utilizado para renderizar HTML a PDF en IronPdf. Medido en píxeles.
- Zoom. Un nivel de % de escala que permite al desarrollador ampliar o reducir el contenido html.
4. Añadir encabezados y pies de página a PDF ASPX
Con IronPDF se pueden añadir encabezados y pies de página al PDF.
La manera más sencilla de hacerlo es con la clase SimpleHeaderFooter, que soporta un diseño básico que puede añadir fácilmente datos dinámicos como la hora actual y la numeración de páginas.
4.1. Ejemplo de encabezado y pie de página de ASPX a PDF
:path=/static-assets/pdf/content-code-examples/tutorials/aspx-to-pdf-4.cs
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace AspxToPdfTutorial
{
public partial class Invoice : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
{
TextHeader = new IronPdf.TextHeaderFooter()
{
CenterText = "Invoice",
DrawDividerLine = false,
Font = FontTypes.Arial,
FontSize = 12
},
TextFooter = new IronPdf.TextHeaderFooter()
{
LeftText = "{date} - {time}",
RightText = "Page {page} of {total-pages}",
Font = IronSoftware.Drawing.FontTypes.Arial,
FontSize = 12,
},
};
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
}
}
}
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace AspxToPdfTutorial
Partial Public Class Invoice
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {
.TextHeader = New IronPdf.TextHeaderFooter() With {
.CenterText = "Invoice",
.DrawDividerLine = False,
.Font = FontTypes.Arial,
.FontSize = 12
},
.TextFooter = New IronPdf.TextHeaderFooter() With {
.LeftText = "{date} - {time}",
.RightText = "Page {page} of {total-pages}",
.Font = IronSoftware.Drawing.FontTypes.Arial,
.FontSize = 12
}
}
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions)
End Sub
End Class
End Namespace
Alternativamente, podemos generar encabezados y pies de página HTML utilizando la clase HtmlHeaderFooter, que también soporta CSS, imágenes e hipervínculos.
:path=/static-assets/pdf/content-code-examples/tutorials/aspx-to-pdf-5.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace AspxToPdfTutorial
{
public partial class Invoice : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
{
MarginTop = 50, // make sufficiant space for an HTML header
HtmlHeader = new IronPdf.HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
}
};
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", AspxToPdfOptions);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace AspxToPdfTutorial
Partial Public Class Invoice
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {
.MarginTop = 50,
.HtmlHeader = New IronPdf.HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
}
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", AspxToPdfOptions)
End Sub
End Class
End Namespace
Como se ha visto en nuestros ejemplos, podemos "fusionar" texto dinámico o html en Encabezados / Pies de página utilizando marcadores de posición:
-
{page} para el número de página actual del PDF
-
{total-pages} como el número total de páginas dentro del PDF
-
{date} para la fecha de hoy en un formato apropiado para el entorno del sistema del servidor
-
{time} para la hora en formato de horas:segundos usando un reloj de 24 horas
-
{html-title} inserta el título de la etiqueta head del formulario web ASPX
- {pdf-title} para el nombre del archivo del documento
5. Trucos para aplicar archivos ASPX a PDF: Saltos de Página
Mientras que el HTML suele "fluir" en una página larga, los PDF simulan el papel digital y se dividen en páginas coherentes. Si añade el siguiente código a su página ASPX, se creará automáticamente un salto de página en el PDF generado por .NET.
:path=/static-assets/pdf/content-code-examples/tutorials/aspx-to-pdf-6.cs
<div style='page-break-after: always;'> </div>
6. Combinar Async y Multithreading para mejorar el rendimiento
IronPDF se ha creado para .NET Framework 4.0, o .NET Core 2 o superior. En proyectos de Framework 4.5 o superior, se puede utilizar ASYNC para mejorar el rendimiento al trabajar con múltiples documentos.
La combinación de Async con CPU multihilo y el comando Paralllel.ForEach mejorará significativamente el procesamiento masivo de formatos PDF.
7. Descargar como código fuente ASP.NET
El Código Fuente del Convertidor de Archivo ASPX a PDF completo para este tutorial está disponible para ser descargado como un proyecto de aplicación web de Visual Studio comprimido.
Descargar este tutorial como un proyecto ASP.NET Visual Studio
La descarga gratuita contiene ejemplos de código de trabajo para un proyecto C# ASP.NET Web Forms que muestra una página web renderizada como PDF con la configuración aplicada. Esperamos que este tutorial le haya ayudado a aprender cómo guardar un archivo ASPX como PDF.
Hacia adelante
Por lo general, la mejor forma de aprender cualquier técnica de programación es experimentando con sus propios proyectos ASP.NET. Esto incluye probar el convertidor ASPX a PDF de IronPDF.
Los desarrolladores también pueden estar interesados en la referencia de la clase IronPdf.AspxToPdf:
https://ironpdf.com/object-reference/api/IronPdf.AspxToPdf.html
8. Ver el vídeo tutorial de ASPX a PDF
Acceso rápido a tutoriales
Descargar este tutorial como código fuente
The full ASPX File to PDF Converter Source Code for this tutorial is available as a zipped Visual Studio Web Application project. La descarga gratuita contiene ejemplos de código funcionando para un proyecto de C# ASP.NET Web Forms, mostrando una página web renderizada como un PDF con configuraciones aplicadas. Descargar
Explore este tutorial en GitHub
El código para este proyecto de C# ASPX-A-PDF está disponible en C# y VB.NET en GitHub como un proyecto de sitio web ASP.NET. No dudes en crear un fork en GitHub para obtener más ayuda usando IronPDF. Siéntete libre de compartir esto con cualquiera que pueda estar preguntando: '¿Cómo convierto ASPX a PDF?'
Proyecto de sitio web C# ASPX a PDF Ejemplos avanzados de ASP.NET para crear PDFs en C# Ejemplos de ASP.NET PDF en VB.NET para crear PDFsDescargar la guía de inicio rápido de C# PDF
Para facilitar el desarrollo de archivos PDF en sus aplicaciones .NET, hemos compilado una guía rápida en un documento PDF. Esta "Cheat-Sheet" proporciona acceso rápido a funciones comunes y ejemplos para generar y editar PDFs en C# y VB.NET, y le ayudará a ahorrar tiempo al empezar a utilizar IronPDF en su proyecto .NET.
DescargarVer la referencia de la API
Explore la Referencia de la API para IronPDF, que describe los detalles de todas las características, espacios de nombres, clases, métodos, campos y enums de IronPDF.
Ver la referencia de la API