Automatically Create a Hierarchy of Bookmarks using EVO HTML to PDF Converter for .NET

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

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

    // Auto Create a hierarchy of bookmarks from H1 to H6 tags found in HTML
    if (autoBookmarksCheckBox.Checked)
    {
        // Enable the creation of a hierarchy of bookmarks from H1 to H6 tags
        htmlToPdfConverter.PdfBookmarkOptions.AutoBookmarksEnabled = true;

        // Display the bookmarks panel in PDF viewer when the generated PDF is opened
        htmlToPdfConverter.PdfViewerPreferences.PageMode = ViewerPageMode.UseOutlines;
    }

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

    // Write the PDF document buffer to HTTP response
    Response.BinaryWrite(outPdfBuffer);

    // End the HTTP response and stop the current page processing
    Response.End();
}

See the live demo for automatically creating a bokmarks hierachy with HTML to PDF converter for .NET.

Another option to create bookmarks is to specify the HTML elements to bookmark using the API.

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

    // Select the HTML elements to bookmark by setting a list of CSS selectors
    htmlToPdfConverter.PdfBookmarkOptions.HtmlElementSelectors = new string[] { htmlElementsSelectorTextBox.Text };

    // Display the bookmarks panel in PDF viewer when the generated PDF is opened
    htmlToPdfConverter.PdfViewerPreferences.PageMode = ViewerPageMode.UseOutlines;

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

    // Write the PDF document buffer to HTTP response
    Response.BinaryWrite(outPdfBuffer);

    // End the HTTP response and stop the current page processing
    Response.End();
}

See  the live demo for  selecting in API the HTML elements to bookmark in the PDF document generated by HTML to PDF Converter for .NET.

You can also define the bookmarks directly in the HTML document you convert using some special attributes. You can set the attribute ‘data-bookmark-enabled‘ on a HTML element to enable the creation a bookmark for that element in PDF. Additionally you can specify the bookmark level in hierarchy with ‘data-bookmark-level‘ attribute and the bookmark title with ‘data-bookmark-text‘ attribute.

See a live demo for  defining in HTML the bookmark hierarchy  to be created by HTML to PDF converter for .NET.