Imports SelectPdf
Namespace Controllers
Public Class PdfBookmarksController
Inherits Controller
' GET: PdfBookmarks
Public Function Index() As ActionResult
Return View()
End Function
<HttpPost>
Public Function SubmitAction(collection As FormCollection) As ActionResult
' create a new pdf document
Dim doc As 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
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
Dim pdf As Byte() = doc.Save()
' close pdf document
doc.Close()
' return resulted pdf document
Dim fileResult As FileResult = New FileContentResult(pdf, "application/pdf")
fileResult.FileDownloadName = "Document.pdf"
Return fileResult
End Function
End Class
End Namespace