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 ajustes que incluyan la configuración del comportamiento y los nombres de los archivos, la adición de encabezados y pies de página, el cambio de las opciones de impresión, la adición de saltos de página, la combinación de Async y Multithreading, etc.
Convertir archivos ASPX a PDF en sencillos pasos
- Descargar la biblioteca ASPX to PDF C# Library
- 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 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 suclase AspxToPdf**.
1. Instale el convertidor de archivos ASPX gratuito de IronPDF
Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.
Instalación mediante NuGet
En Visual Studio, haga clic con el botón derecho del ratón en el explorador de soluciones del proyecto y seleccione "Administrar 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
Instalación mediante DLL
Como alternativa, la DLL de IronPDF puede descargarse e instalarse manualmente en el proyecto o GAC desdeDescargar el paquete IronPDF.
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)
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
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 enReferencia de la API de IronPDF.
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,
//.. 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:
- CreatePdfFormsFromHtml Convierte elementos de formulario ASPX en formularios PDF editables.
- CssMediaType
Screen
oPrint
Estilos CSS y StyleSheets. Consulte nuestrotutorial 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énGuía práctica de WaitFor.
- 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 URL en hipervínculos.
- TextFooter Establece el contenido del encabezado de cada página PDF como texto. Admite 'mail-merge' y convierte automáticamente las URL 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 resultar útil a la hora de considerar la renderizació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).
- Título Metadatos 'Título' del documento PDF.
- 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
Como alternativa, podemos generar encabezados y pies de página HTML utilizando la clase HtmlHeaderFooter, que también admite 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, // 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 ve 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;'> </div>
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,Funciones de ASYNC puede utilizarse para mejorar el rendimiento cuando se trabaja con varios documentos.
La combinación de Async con CPU multihilo y el comando Parallel.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 enReferencia de clase IronPdf.AspxToPdf.
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.
DescargarExplore 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 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 PDFsDescargar la guía de inicio rápido de C# PDF
Para facilitar el desarrollo de archivos PDF en sus aplicaciones .NET, hemos recopilado una guía rápida en un documento PDF. Esta "Cheat-Sheet" proporciona acceso rápido a funciones y ejemplos comunes 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 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 de IronPDF