Sample code · C#
using System.Web.Mvc; using System.Configuration; using SelectPdf; using System; namespace SelectPdf.Samples.Controllers { public class PdfBookmarksController : Controller { // GET: PdfBookmarks public ActionResult Index() { return View(); } [HttpPost] public ActionResult SubmitAction(FormCollection collection) { // create a new pdf document PdfDocument doc = new PdfDocument(); // instruct the document to show the bookmarks panel when opened in a viewer doc.ViewerPreferences.PageMode = PdfViewerPageMode.UseOutlines; // add a new page to the document PdfPage page1 = doc.AddPage(); // add a second page to the document PdfPage page2 = doc.AddPage(); // add a third page to the document PdfPage page3 = doc.AddPage(); // define a rendering result object PdfRenderingResult result; // create a new pdf font PdfFont font = doc.AddFont(PdfStandardFont.Helvetica); font.Size = 14; // create a new text element and add it to the first page PdfTextElement text1 = new PdfTextElement(0, 0, "First page", font); page1.Add(text1); // create a new text element and add it to the second page PdfTextElement text2 = new PdfTextElement(0, 0, "Second page", font); page2.Add(text2); // create a new text element and add it to the third page PdfTextElement text3 = new PdfTextElement(0, 0, "Third page", font); page3.Add(text3); // create a first level bookmark pointing to the first page PdfBookmark book1 = doc.AddBookmark("First page", new PdfDestination(page1, new System.Drawing.PointF(0, 0))); // create a first level bookmark pointing to the second page PdfBookmark book2 = doc.AddBookmark("Second page", new PdfDestination(page2, new System.Drawing.PointF(0, 0))); // create a first level bookmark pointing to the third page PdfBookmark book3 = doc.AddBookmark("Third page", new PdfDestination(page3, new System.Drawing.PointF(0, 0))); // other text on page 2 PdfTextElement text21 = new PdfTextElement(0, 100, "Text 1 on page 2", font); result = page2.Add(text21); // add a level 2 bookmark to this text // (using the bookmark for the page 2 as parent and // the text rendering location as bookmark destination) doc.AddBookmark("Text 1", new PdfDestination(page2, result.PdfPageLastRectangle.Location), book2); // other text on page 2 PdfTextElement text22 = new PdfTextElement(0, 400, "Text 2 on page 2", font); result = page2.Add(text22); // add a level 2 bookmark to this text // (using the bookmark for the page 2 as parent and the text rendering // location as bookmark destination) some styles are set for this bookmark PdfBookmark book = doc.AddBookmark("Text 2", new PdfDestination(page2, result.PdfPageLastRectangle.Location), book2); book.Color = System.Drawing.Color.Red; book.Style = PdfBookmarkStyle.Italic; // 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; } } }