Automatic Bookmarks with Html to Pdf Converter | |
Select.Pdf Html To Pdf Converter for .NET offers support for pdf bookmarks. It can automatically generate pdf bookmarks based on some html elements selection.
The elements that will be bookmarked are defined using the PdfBookmarkOptions property of the HtmlToPdfOptions object. This is an instance of the PdfBookmarkOptions class, with two properties: CssSelectors, which selects the elements, and HierarchicalBookmarks, which decides how the bookmarks are arranged.
In other words, 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.
By default every bookmark is a top-level entry of the outline. Set HierarchicalBookmarks to true to nest them in the order of the selectors instead: elements matched by the first selector become top-level entries, elements matched by the second selector are nested under the entry that precedes them, and so on. With the selectors "H1", "H2" each H2 bookmark appears under the H1 before it. A heading that appears before any heading of the level above it is still placed in a valid tree, one level below the deepest entry open at that point.
This sample code shows how the html to pdf converter can automatically generate pdf bookmarks based on H1 and H2 elements from the web page using Select.Pdf Pdf Library for .NET.
// instantiate a html to pdf converter object HtmlToPdf converter = new HtmlToPdf(); // set the css selectors for the automatic bookmarks converter.Options.PdfBookmarkOptions.CssSelectors = new string[] {"H1", "H2"}; // nest the H2 bookmarks under the H1 bookmark that precedes them converter.Options.PdfBookmarkOptions.HierarchicalBookmarks = true; // 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(url); // save pdf document doc.Save("Sample.pdf"); // close pdf document doc.Close();