SelectPdf for .NET - Pdf Bookmarks - VB.NET / ASP.NET Sample

This sample shows how to create a new PDF document using SelectPdf, how to add several pages, texts and bookmarks to the document.

A bookmark is a special link related to the pdf document that appears in the Bookmarks panel of the pdf viewer. If the pdf document that is created is very long, pdf bookmarks are a must.

Pdf bookmarks can be created with multi-levels and different styles.


Sample Code Vb.Net



Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports SelectPdf

Namespace SelectPdf.Samples
    Partial Public Class pdf_bookmarks
        Inherits System.Web.UI.Page

        Protected Sub BtnCreatePdf_Click(sender As Object, e As EventArgs)
            ' create a new pdf document
            Dim doc As New PdfDocument()

            ' instruct the document to show the bookmarks panel when opened in a pdf viewer
            doc.ViewerPreferences.PageMode = PdfViewerPageMode.UseOutlines

            ' add a new page to the document
            Dim page1 As PdfPage = doc.AddPage()

            ' add a second page to the document
            Dim page2 As PdfPage = doc.AddPage()

            ' add a third page to the document
            Dim page3 As PdfPage = doc.AddPage()

            ' define a rendering result object
            Dim result As PdfRenderingResult

            ' create a new pdf font
            Dim font As PdfFont = doc.AddFont(PdfStandardFont.Helvetica)
            font.Size = 14

            ' create a new text element and add it to the first page
            Dim text1 As New PdfTextElement(0, 0, "First page", font)
            page1.Add(text1)

            ' create a new text element and add it to the second page
            Dim text2 As New PdfTextElement(0, 0, "Second page", font)
            page2.Add(text2)

            ' create a new text element and add it to the third page
            Dim text3 As New PdfTextElement(0, 0, "Third page", font)
            page3.Add(text3)

            ' create a first level bookmark pointing to the first page
            Dim book1 As PdfBookmark = doc.AddBookmark("First page", _
                        New PdfDestination(page1, New System.Drawing.PointF(0, 0)))

            ' create a first level bookmark pointing to the second page
            Dim book2 As PdfBookmark = doc.AddBookmark("Second page", _
                        New PdfDestination(page2, New System.Drawing.PointF(0, 0)))

            ' create a first level bookmark pointing to the third page
            Dim book3 As PdfBookmark = doc.AddBookmark("Third page", _
                        New PdfDestination(page3, New System.Drawing.PointF(0, 0)))

            ' other text on page 2
            Dim text21 As 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
            Dim text22 As 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
            Dim book As PdfBookmark = doc.AddBookmark("Text 2", _
                    New PdfDestination(page2, result.PdfPageLastRectangle.Location), book2)
            book.Color = System.Drawing.Color.Red
            book.Style = PdfBookmarkStyle.Italic

            ' save pdf document
            doc.Save(Response, False, "Sample.pdf")

            ' close pdf document
            doc.Close()
        End Sub
    End Class
End Namespace