Get, create or edit bookmarks
The following example shows how you can use GemBox.Pdf to remove existing bookmarks (PdfDocument.Outlines
) and create new ones in a PDF document.
using GemBox.Pdf;
using System;
class Program
{
static void Main()
{
// If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
using (var document = PdfDocument.Load("%InputFileName%"))
{
// Remove all bookmarks.
document.Outlines.Clear();
// Get the number of pages.
int numberOfPages = document.Pages.Count;
for (int i = 0; i < numberOfPages; i += 10)
{
// Add a new outline item (bookmark) at the end of the document outline collection.
var bookmark = document.Outlines.AddLast(string.Format("PAGES {0}-{1}", i + 1, Math.Min(i + 10, numberOfPages)));
// Set the explicit destination on the new outline item (bookmark).
bookmark.SetDestination(document.Pages[i], PdfDestinationViewType.FitRectangle, 0, 0, 100, 100);
for (int j = 0; j < Math.Min(10, numberOfPages - i); j++)
// Add a new outline item (bookmark) at the end of parent outline item (bookmark) and set the explicit destination.
bookmark.Outlines.AddLast(string.Format("PAGE {0}", i + j + 1)).SetDestination(document.Pages[i + j], PdfDestinationViewType.FitPage);
}
document.PageMode = PdfPageMode.UseOutlines;
document.Save("Outlines.pdf");
}
}
}
Imports GemBox.Pdf
Imports System
Module Program
Sub Main()
' If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
Using document = PdfDocument.Load("%InputFileName%")
' Remove all bookmarks.
document.Outlines.Clear()
' Get the number of pages.
Dim numberOfPages As Integer = document.Pages.Count
For i As Integer = 0 To numberOfPages - 1 Step 10
' Add a new outline item (bookmark) at the end of the document outline collection.
Dim bookmark = document.Outlines.AddLast(String.Format("PAGES {0}-{1}", i + 1, Math.Min(i + 10, numberOfPages)))
' Set the explicit destination on the New outline item (bookmark).
bookmark.SetDestination(document.Pages(i), PdfDestinationViewType.FitRectangle, 0, 0, 100, 100)
For j As Integer = 0 To Math.Min(10, numberOfPages - i) - 1
' Add a new outline item (bookmark) at the end of parent outline item (bookmark) and set the explicit destination.
bookmark.Outlines.AddLast(String.Format("PAGE {0}", i + j + 1)).SetDestination(document.Pages(i + j), PdfDestinationViewType.FitPage)
Next
Next
document.PageMode = PdfPageMode.UseOutlines
document.Save("Outlines.pdf")
End Using
End Sub
End Module