Convert HTML to PDF in ASP.NET, MVC and Windows Forms using C# and VB.NET

html-to-pdf-boxCreating PDF documents programmatically in a traditional way by adding text and images at fixed positions in PDF pages is a time consuming and inflexible approach which takes a lot of effort to create a good looking document. The best alternative for this approach is to design your document as a HTML page and convert that HTML page to a PDF document preserving all the styles and layout from the original HTML page.


You can use the EVO HTML to PDF Converter Library for .NET to instantly create styled, good looking and complex PDF documents right from existing HTML pages and reports. The converter combines the powerful printer friendly PDF format with the flexibility of the HTML format into a great tool for creating nicely formatted and easily maintainable PDF reports and documents.

The most important features of the EVO HTML to PDF conversion are:

  • The library does not rely on external tools or services and does not require installation or server configuration changes, supporting simple copy deployment.
  • It has been designed and tested to work reliably in multithreaded environments and in high traffic websites.
  • The converter has full support for HTML tags, CSS and JavaScript and for advanced HTML5 features like CSS3, SVG and Web Fonts.
  • The rendering is extremely accurate and the resulted PDF preserves all the graphics, images, texts, fonts and layout of the original HTML document, no matter how complex would be.
  • The converter includes advanced automations for creating table of contents and hierarchical bookmarks based on HTML document structure and for transforming HTML forms into fillable PDF forms.
  • With EVO HTML to PDF Converter not only you can create great new PDF documents but you can also edit, merge, split and fill existing PDF documents. The converter can be bundled with the other PDF tools for .NET in EVO PDF Toolkit to offer you additional capabilities to view PDF documents or to extract the text and images from existing PDF documents.

All the software features are detailed on HTML to PDF Converter for .NET  webpage.

C# Code Sample for ASP.NET

The C# sample code below shows how you can convert HTML pages or HTML strings to PDF in just a few lines of code. An instance of the HtmlToPdfConverter class is created and used to convert HTML to PDF. The result of conversion is a byte[] which is sent as response to browser.

protected void convertToPdfButton_Click(object sender, EventArgs e)
    // Create a HTML to PDF converter object with default settings
    HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();

    // Set license key received after purchase to use the converter in licensed mode
    // Leave it not set to use the converter in demo mode
    htmlToPdfConverter.LicenseKey = "4W9+bn19bn5ue2B+bn1/YH98YHd3d3c=";

    // Set HTML Viewer width in pixels which is the equivalent in converter of the browser window width
    htmlToPdfConverter.HtmlViewerWidth = int.Parse(htmlViewerWidthTextBox.Text);

    // Set HTML viewer height in pixels to convert the top part of a HTML page 
    // Leave it not set to convert the entire HTML
    if (htmlViewerHeightTextBox.Text.Length > 0)
        htmlToPdfConverter.HtmlViewerHeight = int.Parse(htmlViewerHeightTextBox.Text);

    // Set PDF page size which can be a predefined size like A4 or a custom size in points 
    // Leave it not set to have a default A4 PDF page
    htmlToPdfConverter.PdfDocumentOptions.PdfPageSize = SelectedPdfPageSize();

    // Set PDF page orientation to Portrait or Landscape
    // Leave it not set to have a default Portrait orientation for PDF page
    htmlToPdfConverter.PdfDocumentOptions.PdfPageOrientation = SelectedPdfPageOrientation();

    // Set the maximum time in seconds to wait for HTML page to be loaded 
    // Leave it not set for a default 60 seconds maximum wait time
    htmlToPdfConverter.NavigationTimeout = int.Parse(navigationTimeoutTextBox.Text);

    // Set an adddional delay in seconds to wait for JavaScript or AJAX calls after page load completed
    // Set this property to 0 if you don't need to wait for such asynchcronous operations to finish
    if (conversionDelayTextBox.Text.Length > 0)
        htmlToPdfConverter.ConversionDelay = int.Parse(conversionDelayTextBox.Text);

    // The buffer to receive the generated PDF document
    byte[] outPdfBuffer = null;

    if (convertUrlRadioButton.Checked)
        string url = urlTextBox.Text;

        // Convert the HTML page given by an URL to a PDF document in a memory buffer
        outPdfBuffer = htmlToPdfConverter.ConvertUrl(url);
        string htmlString = htmlStringTextBox.Text;
        string baseUrl = baseUrlTextBox.Text;

        // Convert a HTML string with a base URL to a PDF document in a memory buffer
        outPdfBuffer = htmlToPdfConverter.ConvertHtml(htmlString, baseUrl);

    // Send the PDF as response to browser

    // Set response content type
    Response.AddHeader("Content-Type", "application/pdf");

    // Instruct the browser to open the PDF file as an attachment or inline
    Response.AddHeader("Content-Disposition", String.Format("{0}; filename=Getting_Started.pdf; size={1}",
        openInlineCheckBox.Checked ? "inline" : "attachment", outPdfBuffer.Length.ToString()));

    // Write the PDF document buffer to HTTP response

    // End the HTTP response and stop the current page processing

You can also see the HTML to PDF Converter for .NET Online Demo for all converter features with complete C# code.

Sample source code in C# and VB.NET for ASP.NET, MVC an Windows Forms can also be found in the software package you can download from website.