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 ingenieros que convierta ASPX a PDF automáticamente utilizando código .NET! Nunca necesitamos pulsar CTRL P! Existe una forma basada en servidor para convertir medios de Internet ASPX y guardarlos 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.

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 ASP.NET (ASPX) es generar archivos PDF dinámicos como facturas, tickets o informes de gestión para que los usuarios los descarguen en formato PDF.

Este tutorial muestra cómo utilizar 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#.

Conseguimos esta conversión de HTML a PDF (convertir ASPX a PDF) al renderizar páginas web utilizando IronPDF y su AspxToPdf Clase de herramientas.

1. Instale el convertidor de archivos ASPX gratuito de IronPDF

Biblioteca NuGet C# para PDF

Instalar con NuGet

Install-Package IronPdf
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

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 desde Framework 4.6.2 y superior, o .NET Core 2 y superior. También funcionará igual de bien en proyectos VB.NET.

Install-Package IronPdf

https://www.nuget.org/packages/IronPdf

Instalación mediante DLL

Como alternativa, la DLL IronPDF puede descargarse e instalarse manualmente en el proyecto o GAC desde https://ironpdf.com/packages/IronPdf.zip

Recuerde añadir esta declaración al principio de cualquier archivo de clase cs que utilice IronPDF:


utilizando IronPdf;

2. Convertir páginas web ASP.NET a PDF

Comenzamos con un "Formulario Web" ASPX normal, que se renderiza como HTML. Posteriormente convertimos la página ASPX a 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 convertir esta página web ASP.NET en un PDF en lugar de HTML, tenemos que abrir el archivo C# (o VB.NET) y añádelo al evento Page_Load:

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-1.cs
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
VB   C#

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/how-to/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
VB   C#

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 íntegramente en línea en Página de referencia de la API.

3.1. Establecer el comportamiento del archivo PDF

El comportamiento de 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" hace que se descargue el PDF.


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, "Factura.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. Referencia de la API ChromePdfRenderer

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-3.cs
var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
{
    EnableJavaScript = false,
    //.. muchas más opciones disponibles
};
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Las opciones de representación de PDF disponibles incluyen:

  • CreatePdfFormsFromHtml Convierte elementos de formulario ASPX en formularios PDF editables.
  • CssMediaType Screen o Print Estilos CSS y StyleSheets. Consulte nuestro tutorial completo con imágenes comparativas.
  • CustomCssUrl Permite aplicar una hoja de estilo CSS personalizada al HTML antes de la renderización. Puede ser una ruta de archivo local o una URL remota.
  • EnableMathematicalLaTex Activa o desactiva la representación de elementos matemáticos LaTeX.
  • EnableJavaScript Permite ejecutar JavaScript y JSON antes de renderizar la página. Ideal para imprimir desde aplicaciones Ajax / Angular. Véase también EspereFot.
  • Javascript Especifica una cadena JavaScript personalizada que se ejecutará después de que se haya cargado todo el HTML pero antes de la renderización del PDF.
  • JavascriptMessageListener Un método de devolución de llamada que se invocará cada vez que un mensaje de la consola JavaScript del navegador esté disponible.
  • FirstPageNumber Número de la primera página para Header y Footer. El valor por defecto es 1.
  • TableOfContents Genera una tabla de contenidos en la ubicación del documento HTML donde se encuentra un elemento con id "ironpdf-toc".
  • TextHeader Establece el contenido del pie de página para cada página PDF como texto. Admite "mail-merge" y convierte automáticamente las urls en hipervínculos.
  • 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.
  • HtmlHeader Establece el contenido del encabezado para cada página PDF utilizando cadenas de contenido o incluso HTML.
  • HtmlFooter Establece el contenido del pie de página para cada página PDF utilizando cadenas de contenido o incluso HTML.
  • 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 Margen superior del papel PDF en milímetros. Póngalo a cero para un pdf sin bordes.
  • UseMarginsOnHeaderAndFooter Especifica si se deben utilizar los valores de los márgenes del documento principal al renderizar los encabezados y pies de página.
  • PaperFit: Un gestor para configurar diseños de papel virtual, controlando cómo se dispondrá el contenido en las páginas de "papel" PDF. Incluye opciones para el comportamiento predeterminado de Chrome, con zoom, diseños CSS3 adaptables, configuraciones de página PDF de estilo Scale-To-Page y Continuous Feed.
  • Orientación del papel La orientación del papel del PDF. Paisaje o Retrato.
  • Rotación de página Rotación de página a partir de un documento existente. Explicación completa y ejemplo de código adjunto.
  • PaperSize Establece un tamaño de papel de salida para las páginas PDF utilizando System.Drawing.Printing.PaperKind.
  • SetCustomPaperSizeinCentimeters Establece el tamaño del papel en centímetros.
  • SetCustomPaperSizeInInches Establece el tamaño del papel en pulgadas.
  • SetCustomPaperSizeinMilimeters Establece el tamaño del papel en milímetros.
  • SetCustomPaperSizeinPixelsOrPoints Establece el tamaño del papel en píxeles de pantalla o puntos de impresora.
  • ForcePaperSize Especifica si se debe forzar que el tamaño de página sea exactamente el especificado mediante PaperSize al cambiar el tamaño de la página después de generar un PDF a partir de HTML.
  • PrintHtmlBackgrounds Imprime fondos de imagen HTML.
  • Escala de grises Genera un PDF en escala de grises en lugar de a todo color.
  • WaitFor Objeto que contiene la configuración del mecanismo de espera. Esto puede ser útil cuando se considera la representación de JavaScript, Ajax o animaciones.
    • Carga de página: Renderizado por defecto sin esperas.
    • RenderDelay: Establecer un tiempo de espera arbitrario.
    • Fonts: Espera hasta que se hayan cargado todas las fuentes.
    • JavaScript: Activación del renderizado con una función JavaScript.
    • Elementos HTML: Espera elementos HTML específicos, como ID de elementos, nombres, nombres de etiquetas y selectores de consulta a elementos de destino.
    • RedIdle: Esperando red inactiva (0, 2 o una cantidad personalizada).
  • Title PDF Documento 'Title' meta-data.
  • InputEncoding La codificación de caracteres de entrada como cadena. UTF-8 por defecto en ASP.NET.
  • RequestContext Especifica el contexto de solicitud para el renderizado.
  • **Tiempo de espera. Tiempo de espera en segundos.

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 forma más sencilla de hacerlo es con la clase TextHeaderFooter, que admite 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/how-to/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
VB   C#

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/how-to/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, //  hacer espacio suficiente para una cabecera HTML
                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
VB   C#

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:

  • {página}: para el número de página actual del PDF.
  • {total-páginas}: como el número total de páginas del PDF.
  • {url}: URL web desde la que se ha generado el documento PDF.
  • {fecha}: para la fecha de hoy en un formato adecuado al entorno del sistema del servidor.
  • {tiempo}para la hora en horas:segundos utilizando un reloj de 24 horas.
  • {html-title}: inserta el title de la etiqueta head del formulario web ASPX.
  • {título pdf}: 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/how-to/aspx-to-pdf-6.cs
<div style='page-break-after: always;'>&nbsp;</div>
HTML

6. Combinar Async y Multithreading para mejorar el rendimiento

IronPDF se ha creado para .NET Framework 4.6.2, o .NET Core 2 o superior. En proyectos Framework 4.6.2 o superiores, ASYNC puede utilizarse para mejorar el rendimiento cuando se trabaja con varios 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 completo del conversor de archivos ASPX a PDF de este tutorial está disponible para su descarga como un proyecto comprimido de aplicación web de Visual Studio.

Descargar este tutorial como 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 Clase IronPdf.AspxToPdf referencia:

8. Ver el vídeo tutorial de ASPX a PDF


Acceso rápido a tutoriales

Descargar este tutorial como código fuente

El código fuente completo del conversor de archivos ASPX a PDF para este tutorial está disponible como un proyecto comprimido de aplicación web de Visual Studio. The free download contains working code examples for a C# ASP.NET Web Forms project, showing a web page rendered as a PDF with settings applied.

Descargar

Explore este tutorial en GitHub

El código de este proyecto ASPX-To-PDF en C# está disponible en C# y VB.NET en GitHub como un proyecto de sitio web ASP.NET. Por favor, siga adelante y bifurcarnos en Github para obtener más ayuda utilizando IronPDF. Siéntase libre de compartir esto con cualquier persona que podría estar preguntando, "¿Cómo puedo convertir ASPX a PDF?

Proyecto de sitio web ASPX a PDF en C# Ejemplos avanzados de ASP.NET Page to PDF en C# para crear PDFs ASP.NET PDF Ejemplos en VB.NET para crear PDFs

Descargar C# PDF Quickstart guide

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.

Descargar

Ver 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