Páginas ASPX a PDF en ASP.NET

This article was translated from English: Does it need improvement?
Translated
View the article in English

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

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.

Primer Paso:
green arrow pointer

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)
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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;'>&nbsp;</div>
HTML

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

Brand Visual Studio related to 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 PDFs
Github Icon related to Acceso rápido a tutoriales
Html To Pdf Icon related to Acceso rápido a tutoriales

Descargar 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.

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
Documentation related to Acceso rápido a tutoriales
Software Product Designer @ Team Iron Aprenda a convertir cualquier página ASP.NET ASPX en un documento PDF en un PDF en lugar de HTML utilizando una sola línea de código en C# o VB.NET
Diseñador de productos de software @ Team Iron

Jacob es un ingeniero de software comprometido que disfruta del desarrollo y de escribir sobre los lenguajes de programación C# y Python.

El interés principal de Jacob actualmente es el desarrollo de módulos de software para proyectos de desarrollo de intranet a gran escala utilizando C# y ASP.NET MVC.

También está interesado en el futuro de .NET Core como la base de una nueva tecnología de desarrollo independiente de la plataforma que proporcionará aplicaciones de escritorio, servidor y web dentro de un único marco de código abierto que pone a los desarrolladores y usuarios antes que las máquinas virtuales.