Skip to main content

Bookmarks in PDF Documents

  • 3 minutes to read

Bookmarks (outlines) are used to quickly navigate from one part of a document to another. Bookmarks can be anchored to the document page, external URI, or an action. The PDF Document API allows you to manage bookmarks.

Access Bookmarks

Use the PdfDocument.Bookmarks property to obtain a list of bookmarks (PdfBookmark objects). Call the Add(T) method to add a new bookmark. The Remove(T) method call removes the specified bookmark.

Create a Bookmark Destination

Use the PdfBookmark.Destination property to assign a bookmark to a destination – reference to a page with specific view parameters.

A destination includes the following view parameters:

  • The displayed document page
  • The location of the document window on this page
  • The magnification (zoom factor)

Call one of the following methods to create a destination:

View Parameters Methods
Fit the page’s bounding box to the document window both horizontally and vertically. PdfPageFacade.CreateFitBBoxDestination
Fit the page’s bounding box to the document window horizontally. PdfPageFacade.CreateFitBBoxHorizontallyDestination
Fit the page’s bounding box to the document window vertically. PdfPageFacade.CreateFitBBoxVerticallyDestination
Fit the entire page to the document window both horizontally and vertically (Zoom to Page Level view). PdfPageFacade.CreateFitDestination
Fit the entire page to the document window horizontally. PdfPageFacade.CreateFitHorizontallyDestination
Fit the entire page to the document window vertically. PdfPageFacade.CreateFitVerticallyDestination
Display the specified page area in the document window. PdfPageFacade.CreateFitRectangleDestination
Position the specified page coordinate at the top left document window corner, and specify the zoom factor. PdfPageFacade.CreateXYZDestination

The code sample below creates a bookmark with a destination that displays the eighth page as follows:

bookmark

using (PdfDocumentProcessor pdfDocumentProcessor = new PdfDocumentProcessor())
{
    // Load a document
    pdfDocumentProcessor.LoadDocument("Demo.pdf");

    // Create a FitB destination that refers to the eighth page
    PdfFitBBoxDestination destination =
       new PdfFitBBoxDestination(pdfDocumentProcessor.Document.Pages[7]);

    // Create a bookmark
    PdfBookmark bookmark = new PdfBookmark();
    bookmark.Title = "Annotations";

    // Associate the bookmark with the created destination
    bookmark.Destination = destination;

    // Add the bookmark to the document collection
    pdfDocumentProcessor.Document.Bookmarks.Add(bookmark);

    // Save the result
    pdfDocumentProcessor.SaveDocument("out.pdf");
}
See Also