SelectPdf for .NET - Automatic Bookmarks with Html to Pdf Converter - C# / ASP.NET MVC Sample

This sample shows how the html to pdf converter can automatically generate pdf bookmarks based on some elements selection using SelectPdf Pdf Library for .NET.

The elements that will be bookmarked are defined using CSS selectors. For example, the selector for all the H1 elements is "H1", the selector for all the elements with the CSS class name 'myclass' is "*.myclass" and the selector for the elements with the id 'myid' is "*#myid". Read more about CSS selectors here.

Test document

Url:


Bookmark the following elements:



Sample Code C#



using System;
using System.Web.Mvc;

namespace SelectPdf.Samples.Controllers
{
    public class AutomaticBookmarksController : Controller
    {
        // GET: AutomaticBookmarks
        public ActionResult Index()
        {
            string url = System.Web.VirtualPathUtility.ToAbsolute("~/files/document.html");
            ViewData.Add("ViewTxtUrl", (new Uri(Request.Url, url)).AbsoluteUri);
           
            return View();
        }

        [HttpPost]
        public ActionResult SubmitAction(FormCollection collection)
        {
            // instantiate a html to pdf converter object
            HtmlToPdf converter = new HtmlToPdf();

            // set the css selectors for the automatic bookmarks
            converter.Options.PdfBookmarkOptions.CssSelectors =
                collection["TxtElements"].Split(new char[] { ',' });

            // display the bookmarks when the document is opened in a viewer
            converter.Options.ViewerPreferences.PageMode = PdfViewerPageMode.UseOutlines;

            // create a new pdf document converting an url
            PdfDocument doc = converter.ConvertUrl(collection["TxtUrl"]);

            // save pdf document
            byte[] pdf = doc.Save();

            // close pdf document
            doc.Close();

            // return resulted pdf document
            FileResult fileResult = new FileContentResult(pdf, "application/pdf");
            fileResult.FileDownloadName = "Document.pdf";
            return fileResult;
        }
    }
}