Automatically Create Table of Contents with EVO HTML to PDF Converter for .NET

EVO HTML to PDF Converter for .NET can be configured to automatically create a table of contents in PDF document based on H1 to H6 head tags found in HTML document by simply turning on a flag.

You can also define a table of contents directly in HTML using a set of special attributes. You can set the attribute ‘data-toc-item‘ on a HTML element to enable the creation a table of contents entry for that element in PDF. Additionally you can specify the item level in table of contents with ‘data-toc-level‘ attribute and the bookmark title with ‘data-toc-title‘ attribute.

The automatically generated table of contents is hierarchical, having the items structured on many levels and can contain the page number in PDF for each item. Each item in the table of contents is a link to the corresponding content in the PDF document and when you click on that link the PDF viewer will scroll to that content in PDF document.

You can customize the table of contents style for title, for each level of items and for the page numbers. You can change the font, color, background using the well known CSS syntax.

The relevant C# code for automatically creating a table of contents is:

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=";

    // Enable the creation of a table of contents from H1 to H6 tags found in HTML
    htmlToPdfConverter.TableOfContentsOptions.AutoTocItemsEnabled = autoTableOfContentsCheckBox.Checked;

    // Optionally set the table of contents title
    htmlToPdfConverter.TableOfContentsOptions.Title = "Table of Contents";

    // Optionally set the title style using CSS sttributes
    htmlToPdfConverter.TableOfContentsOptions.TitleStyle = "color:navy; font-family:'Times New Roman'; font-size:28px; font-weight:normal";

    // Optionally set the style of level 1 items in table of contents
    string level1TextStyle = "color:black; font-family:'Times New Roman'; font-size:20px; font-weight:normal; font-style:normal; background-color:#F0F0F0";
    htmlToPdfConverter.TableOfContentsOptions.SetItemStyle(1, level1TextStyle);

    // Optionally set the page numbers style of level 1 items in table of contents
    string level1PageNumberStyle = "color:black; padding-right:3px; background-color:#F0F0F0; font-size:14px; font-weight:bold";
    htmlToPdfConverter.TableOfContentsOptions.SetPageNumberStyle(1, level1PageNumberStyle);

    // Convert the HTML page to a PDF document in a memory buffer
    byte[] outPdfBuffer = htmlToPdfConverter.ConvertUrl(urlTextBox.Text);

    // 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("attachment; filename=Auto_Create_Table_of_Contents.pdf; size={0}", outPdfBuffer.Length.ToString()));

    // Write the PDF document buffer to HTTP response

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


You can see the live demo for automatically creating table of contents using the HTML to PDF Converter  for .NET, with full C# source code and detailed description.

EVO HTML to PDF Converter Library for .NET


EVO HTML to PDF Converter for .NET is a library that can be easily integrated and distributed in your ASP.NET and MVC web sites, desktop applications, Windows services and Azure cloud services to convert web pages, HTML strings and streams to PDF, to images or to SVG and to create nicely formatted and easily maintainable PDF reports and documents. The converter has full support for HTML5, CSS3, SVG, Canvas, Web Fonts and JavaScript. Does not require installation or any third party tools.

EVO HTML to PDF Converter Library for .NET combines the powerful printer friendly PDF format with the flexibility of the popular HTML format into a modern tool for creating nicely formatted and easily maintainable PDF reports and documents.


Besides .NET platform on Windows, the EVO HTML to PDF Converter library is also available on various other platforms in various programming languages like Java, Azure, WinRT and Windows Phone, Mono, Xamarin or .NET Core, Linux, MacOS, iOS or Android.

evo-pdf_23The main features of the HTML to PDF Converter are listed below. You can find a complete list of all EVO HTML to PDF Converter for .NET Features on product webpage.

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

Using EVO HTML to PDF Converter for .NET you can convert any HTML page to PDF, to Image or to SVG in just a few lines of C# or VB.NET code:

using EvoPdf;
HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();
byte[] outPdfBuffer = htmlToPdfConverter.ConvertUrl(url);

Please see the Fully Featured HTML to PDF Demo with complete C# and VB.NET source code samples for ASP.NET, MVC and Window Forms

You can also download HTML to PDF Converter for .NET zip package of the software containing the development libraries, demo applications for ASP.NET, MVC and Windows Forms in C# and VB.NET together with the full library documentation.