How to convert ASPX files to PDF

Microsoft Web Form Applications for ASP.NET are commonly used in the development of sophisticated websites, online banking, intranets and accounting systems. One common feature of ASP.NET (ASPX) websites is to generate dynamic PDF files such as invoices, tickets, or management reports for users to download in PDF format.

This tutorial shows how to use the IronPDF software component for .NET to turn any ASP.NET web form into a PDF (ASP.NET to PDF). HTML, normally rendered as a web page, will be used to render as a PDF for download or viewing in a web browser. The attached source project will show you how to convert a webpage to PDF in ASP.NET using C#.

We achieve this HTML to PDF conversion (convert ASPX to PDF) when rendering webpages using the IronPDF and its AspxToPdf Class.

1. Install the ASPX file Converter Free from IronPDF

Start using IronPDF in your project today with a free trial.

First Step:
green arrow pointer
Install via NuGet

In Visual Studio, right-click on your project solution explorer and select "Manage NuGet Packages...". From there simply search for IronPDF and install the latest version... click OK to any dialog boxes that come up.

This will work in any C# .NET Framework project from Framework 4.6.2 and above, or .NET Core 2 and above. It will also work just as well in VB.NET projects.

Install-Package IronPdf

Download IronPDF from NuGet

Install via DLL

Alternatively, the IronPDF DLL can be downloaded and manually installed to the project or GAC from Download IronPDF Package.

Remember to add this statement to the top of any cs class file using IronPDF:

using IronPdf;
using IronPdf;
$vbLabelText   $csharpLabel

2. Convert ASP.NET Webpages to PDF

We start with a normal ASPX "Web Form," which renders as HTML. We later convert the ASPX page to PDF file format.

In the attached example source code, we rendered a business invoice "Invoice.aspx," a simple HTML business invoice rendered as an ASP.NET Page.

The HTML page contains CSS3 stylesheets and may also include images and javascript.

To render this ASP.NET Web Page to a PDF instead of HTML, we need to open the C# (or VB.NET) code and add this to the Page_Load event:

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-1.cs
// Import the IronPdf library to enable PDF rendering functionality.
using IronPdf;

// This line converts the current ASPX page to a PDF using IronPdf.
// IronPdf is a library that allows easy PDF rendering for ASP.NET applications.
// The `RenderThisPageAsPdf` method is used to create a PDF from the current page.
// The PDF will be shown in the web browser directly due to the use of the `InBrowser` file behavior option.

AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.InBrowser);
$vbLabelText   $csharpLabel

This is all that's required; the HTML now renders as a PDF. Hyperlinks, StyleSheets, Images and even HTML forms are preserved. This is very similar to the output if the user printed the HTML to a PDF in their browser themselves. IronPDF is built upon Chromium web browser technology that powers Google Chrome.

The entire C# code reads like this in full: Convert The ASPX Page as PDF in Active Server Pages.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-2.cs
using System;
using System.Web.UI;
using IronPdf;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        // Page_Load is called when the page is loaded into the server memory.
        // This is part of the ASP.NET page lifecycle.
        protected void Page_Load(object sender, EventArgs e)
        {
            // Check if the page is being loaded for the first time, not on postbacks
            if (!IsPostBack)
            {
                // Render the current ASP.NET page as a PDF and respond back to the browser.
                // This will display the PDF in the browser window.
                AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.InBrowser);
            }
        }
    }
}
$vbLabelText   $csharpLabel

3. Apply ASPX File to PDF Converter Settings

There are many options to tweak and perfect when we convert an ASPX file to PDF generated using .NET Web Forms.

These options are documented in full online at IronPDF API Reference.

3.1. Set PDF File Behavior

"InBrowser" file behavior attempts to show the PDF directly in the user's browser. This is not always possible in every web browser, but typically a common feature of modern, standards-compliant browsers.

IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
$vbLabelText   $csharpLabel

"Attachment" file behavior causes the PDF to be downloaded.

IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment);
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment);
$vbLabelText   $csharpLabel

3.2. Set PDF File Name

We may also set the file name of the PDF document by adding an additional parameter. This means we can control the name of the file when the user decides to download or keep it. When we save the ASPX page as a PDF, this name will be given to the PDF document.

IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf");
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf");
$vbLabelText   $csharpLabel

3.3. Change PDF Print Options

We can control the output of the PDF by adding an instance of the IronPdf.ChromePdfRenderer Class. ChromePdfRenderer API Reference

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-3.cs
// This code snippet uses the IronPdf library to render the current ASPX web page as a PDF document.
// Ensure that the IronPdf library is properly referenced in your project before using this code.

// Create an instance of ChromePdfRenderOptions to configure PDF rendering options
var aspxToPdfOptions = new IronPdf.ChromePdfRenderOptions
{
    // Disable JavaScript for the rendering process for security or performance reasons
    EnableJavaScript = false,
    // Here you can set additional rendering options if necessary, such as setting margins, paper size, etc.
};

// Render the current page as a PDF using the specified file behavior and options
// - IronPdf.AspxToPdf.FileBehavior.Attachment: Indicates that the resulting PDF should be downloaded as an attachment
// - "Invoice.pdf": Sets the filename of the resulting PDF document
// - aspxToPdfOptions: Specifies the rendering options configured above

IronPdf.AspxToPdf.RenderThisPageAsPdf(
    IronPdf.AspxToPdf.FileBehavior.Attachment,
    "Invoice.pdf",
    aspxToPdfOptions
);
$vbLabelText   $csharpLabel

The PDF rendering options available include:

  • CreatePdfFormsFromHtml Turns ASPX form elements into editable PDF forms.
  • CssMediaType Screen or Print CSS Styles and StyleSheets. See our full in-depth tutorial with comparison images.
  • CustomCssUrl Allows a custom CSS style-sheet to be applied to HTML before rendering. May be a local file path, or a remote URL.
  • EnableMathematicalLaTex Enables or disables the rendering of mathematical LaTeX elements.
  • EnableJavaScript Enables JavaScript and JSON to be executed before the page is rendered. Ideal for printing from Ajax / Angular Applications. Also see WaitFor how-to guide.
  • Javascript Specifies a custom JavaScript string to be executed after all HTML has loaded but before PDF rendering.
  • JavascriptMessageListener A method callback to be invoked whenever a browser JavaScript console message becomes available.
  • FirstPageNumber First page number for Header and Footer. The default is 1.
  • TableOfContents Generates a table of contents at the location in the HTML document where an element is found with id "ironpdf-toc".
  • TextHeader Sets the footer content for every PDF page as text. Supports 'mail-merge' and automatically turns URLs into hyperlinks.
  • TextFooter Sets the header content for every PDF page as text. Supports 'mail-merge' and automatically turns URLs into hyperlinks.
  • HtmlHeader Sets the header content for every PDF page using content strings or even HTML.
  • HtmlFooter Sets the footer content for every PDF page using content strings or even HTML.
  • MarginBottom Bottom PDF Paper margin in millimeters. Set to zero for a borderless pdf.
  • MarginLeft Left PDF Paper margin in millimeters. Set to zero for a borderless pdf.
  • MarginRight Right PDF Paper margin in millimeters. Set to zero for a borderless pdf.
  • MarginTop Top PDF Paper margin in millimeters. Set to zero for a borderless pdf.
  • UseMarginsOnHeaderAndFooter Specifies whether to use margin values from the main document when rendering headers and footers.
  • PaperFit: A manager for setting up virtual paper layouts, controlling how content will be laid out on PDF "paper" pages. Includes options for Default Chrome Behavior, Zoomed, Responsive CSS3 Layouts, Scale-To-Page & Continuous Feed style PDF page setups.
  • PaperOrientation The PDF paper orientation. Landscape or Portrait.
  • PageRotation Page rotation from existing document. Full explanation and accompanying code example.
  • PaperSize Set an output paper size for PDF pages using System.Drawing.Printing.PaperKind.
  • SetCustomPaperSizeinCentimeters Sets the paper size in centimeters.
  • SetCustomPaperSizeInInches Sets the paper size in inches.
  • SetCustomPaperSizeinMilimeters Sets the paper size in millimeters.
  • SetCustomPaperSizeinPixelsOrPoints Sets the paper size in screen pixels or printer points.
  • ForcePaperSize Specifies whether to force page sizes to be exactly what is specified via PaperSize by resizing the page after generating a PDF from HTML.
  • PrintHtmlBackgrounds Prints HTML image backgrounds.
  • GrayScale Outputs a greyscale PDF in shades of grey instead of full color.
  • WaitFor A wrapper object that holds configuration for wait-for mechanism. This can use useful when considering the rendering of JavaScript, Ajax, or animations.
    • PageLoad: Default render with no waiting.
    • RenderDelay: Setting an arbitrary waiting time.
    • Fonts: Waits until all the fonts have loaded.
    • JavaScript: Triggering the render with a JavaScript function.
    • HTML elements: Waits for specific HTML elements, such as element IDs, names, tag names, and query selectors to target elements.
    • NetworkIdle: Waiting for network idle (0, 2, or a custom amount).
  • Title PDF Document 'Title' metadata.
  • InputEncoding The input character encoding as a string. UTF-8 is Default for ASP.NET.
  • RequestContext Specifies the request context for the render.
  • Timeout. Render timeout in seconds.

4. Add Headers & Footers to ASPX PDFs

Using IronPDF, Headers and Footers can be added to the PDF output.

The simplest way to do this is with the TextHeaderFooter class, which supports a basic layout that can easily add dynamic data such as the current time and page numbering.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-4.cs
using IronSoftware.Drawing;
using System;
using System.Web.UI;
using IronPdf;

// Namespace containing the ASPX to PDF functionality
namespace AspxToPdfTutorial
{
    // Partial class definition for an Invoice page inheriting from System.Web.UI.Page
    public partial class Invoice : System.Web.UI.Page
    {
        // Called whenever the page is loaded
        protected void Page_Load(object sender, EventArgs e)
        {
            // Configure the options for rendering the ASPX page to a PDF
            // IronPdf.ChromePdfRenderOptions should be imported from IronPdf namespace
            var aspxToPdfOptions = new IronPdf.ChromePdfRenderOptions
            {
                TextHeader = new IronPdf.TextHeaderFooter
                {
                    CenterText = "Invoice", // Set header text to "Invoice"
                    DrawDividerLine = false, // Do not draw a dividing line in the header
                    FontFamily = "Arial", // Use Arial font for the header
                    FontSize = 12 // Header font size
                },
                TextFooter = new IronPdf.TextHeaderFooter
                {
                    LeftText = "{date} - {time}", // Display current date and time in the footer
                    RightText = "Page {page} of {total-pages}", // Display page number and total pages
                    FontFamily = "Arial", // Use Arial font for the footer
                    FontSize = 12 // Footer font size
                }
            };

            // Render the current ASPX page as a PDF attachment named "Invoice.pdf" using the defined options
            AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", aspxToPdfOptions);
        }
    }
}
$vbLabelText   $csharpLabel

Alternatively, we can generate HTML headers and footers using the HtmlHeaderFooter class, which also supports CSS, images, and hyperlinks.

: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;
using IronPdf; // Ensure IronPdf is imported

namespace AspxToPdfTutorial
{
    // Partial class definition for the Invoice web page
    public partial class Invoice : System.Web.UI.Page
    {
        // Event handler for Page Load event
        protected void Page_Load(object sender, EventArgs e)
        {
            // Check if the page is being loaded for the first time
            if (!IsPostBack)
            {
                // Set up the PDF options for rendering
                var aspxToPdfOptions = new ChromePdfRenderOptions
                {
                    // Configure margins and header settings
                    MarginTop = 50,  // Make sufficient space for an HTML header
                    HtmlHeader = new HtmlHeaderFooter
                    {
                        // Define the HTML content of the header
                        HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
                    }
                };

                // Render the current page as a PDF document
                // The file will be sent as an attachment in the HTTP response
                AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", aspxToPdfOptions);
            }
        }
    }
}
$vbLabelText   $csharpLabel

As seen in our examples, we may "merge" dynamic text or HTML into Headers / Footers using placeholders:

  • {page}: for the current page number of the PDF.
  • {total-pages}: as the total number of pages within the PDF.
  • {url}: Web URL from which the PDF document was rendered.
  • {date}: for today's date in a format appropriate to the server's system environment.
  • {time}: for the time in hours:seconds using a 24-hour clock.
  • {html-title}: inserts the title from the head tag of the ASPX web form.
  • {pdf-title}: for the document file name.

5. Apply ASPX File to PDF Tricks: Page Breaks

Whereas HTML commonly 'flows' into a long page, PDFs simulate digital paper and are broken into consistent pages. Adding the following code to your ASPX page will automatically create a page-break in the .NET generated PDF.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-6.cs
// Initialize an integer array with 5 elements
int[] numbers = new int[5];

try
{
    // Populate array elements
    for (int i = 0; i < numbers.Length; i++)
    {
        // Assign value to each array element
        numbers[i] = i + 1;
    }
    
    // Sum all elements in the array
    int sum = 0;
    foreach (int number in numbers)
    {
        sum += number; // Accumulate sum
    }
    
    // Output the sum of the array elements
    Console.WriteLine("Sum of array elements: " + sum);
    
    // Attempt to access an out-of-bounds index to demonstrate exception handling
    int invalidAccess = numbers[10];
}
catch (IndexOutOfRangeException e)
{
    // Catch exception and output an error message indicating the problem
    Console.WriteLine("Attempted to access an out-of-bounds index: " + e.Message);
}

// Output each element in the array
Console.WriteLine("Array contents:");
foreach (int number in numbers)
{
    Console.WriteLine(number);
}
HTML

6. Combine Async & Multithreading for Performance

IronPDF was built for .NET Framework 4.6.2, or .NET Core 2 or above. In Framework 4.6.2 or above projects, ASYNC capabilities can be utilized to improve performance when working with multiple documents.

Combining Async with multithreaded CPUs and the Parallel.ForEach command will improve bulk PDF format processing significantly.

7. Download as ASP.NET Source Code

The full ASPX File to PDF Converter Source Code for this tutorial is available to be downloaded as a zipped Visual Studio Web Application project.

Download this tutorial as a ASP.NET Visual Studio project

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. We hope this tutorial has helped you learn how to save an ASPX file as PDF.

Going Forwards

Generally, the best way to learn any programming technique is through experimentation within your own ASP.NET projects. This includes trying the ASPX to PDF Converter from IronPDF.

Developers may also be interested in the IronPdf.AspxToPdf Class Reference.

8. Watch ASPX to PDF Tutorial Video


Tutorial Quick Access

Brand Visual Studio related to Tutorial Quick Access

Download this Tutorial as Source Code

The full ASPX File to PDF Converter Source Code for this tutorial is available as a zipped Visual Studio Web Application project. 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.

Download

Explore this Tutorial on GitHub

The code for this C# ASPX-To-PDF project is available in C# and VB.NET on GitHub as an ASP.NET website project. Please go ahead and fork us on GitHub for more help using IronPDF. Feel free to share this with anyone who might be asking, 'How do I Convert ASPX to PDF?'

C# ASPX to PDF Website Project Advanced ASP.NET Page to PDF Samples in C# for creating PDFs ASP.NET PDF Examples in VB.NET for creating PDFs
Github Icon related to Tutorial Quick Access
Html To Pdf Icon related to Tutorial Quick Access

Download C# PDF Quickstart guide

To make developing PDFs in your .NET applications easier, we have compiled a quick-start guide as a PDF document. This "Cheat-Sheet" provides quick access to common functions and examples for generating and editing PDFs in C# and VB.NET, and will help save time getting started using IronPDF in your .NET project.

Download

View the API Reference

Explore the API Reference for IronPDF, outlining the details of all of IronPDF’s features, namespaces, classes, methods fields, and enums.

View the IronPDF API Reference
Documentation related to Tutorial Quick Access

Frequently Asked Questions

What is ASPX to PDF conversion?

ASPX to PDF conversion involves transforming ASPX web pages into PDF format. This can be done using tools like IronPDF in C# or VB.NET to automatically render the pages as PDFs, providing a convenient way to save or distribute content.

How can I convert an ASPX page to PDF in ASP.NET using IronPDF?

To convert an ASPX page to PDF using IronPDF, download the IronPDF library via NuGet, add the necessary 'using IronPdf;' statement, and use the 'IronPdf.AspxToPdf.RenderThisPageAsPdf()' method within the 'Page_Load' event of your ASPX page.

What are the system requirements for using IronPDF?

IronPDF can be used within any C# .NET Framework project from Framework 4.6.2 and above, or .NET Core 2 and above. It is also compatible with VB.NET projects.

How can I customize the PDF output when converting from ASPX?

You can customize the PDF output by setting options like file behavior (InBrowser or Attachment), file name, print options, and PDF rendering settings using the IronPdf.ChromePdfRenderer class and its properties.

Can I add headers and footers to the converted PDF?

Yes, headers and footers can be added to the PDF output using the TextHeaderFooter or HtmlHeaderFooter classes of the IronPDF library. This allows for the inclusion of dynamic content and styling.

What is the role of the 'Page_Load' event in ASPX to PDF conversion?

The 'Page_Load' event is used to trigger the conversion of an ASPX page to a PDF by calling the 'IronPdf.AspxToPdf.RenderThisPageAsPdf()' method. This ensures that the PDF is generated as soon as the page loads.

How can I handle page breaks in the converted PDF?

Page breaks can be managed by adding specific HTML/CSS code to your ASPX page. For instance, using a 'page-break' CSS class can enforce page breaks where necessary in the PDF document.

Is it possible to perform asynchronous PDF conversion with IronPDF?

Yes, IronPDF supports asynchronous PDF conversion and multithreading, allowing for improved performance when processing multiple documents concurrently in .NET Framework 4.6.2 or above projects.

Where can I find the source code for ASPX to PDF conversion using IronPDF?

The source code for ASPX to PDF conversion using IronPDF is available for download as a zipped Visual Studio Web Application project. It can also be explored on GitHub for C# and VB.NET projects.

What additional resources are available for learning ASPX to PDF conversion?

Additional resources include the IronPDF API Reference, a C# PDF Quickstart guide, and video tutorials. These resources provide detailed information and examples to help developers effectively use IronPDF for converting ASPX pages to PDF.

Chaknith Bin
Software Engineer
Chaknith works on IronXL and IronBarcode. He has deep expertise in C# and .NET, helping improve the software and support customers. His insights from user interactions contribute to better products, documentation, and overall experience.