A navigation button in a PDF document can redirect users from one page to another. For instance, when a navigation button is clicked, we can jump to the next/last page or return to the previous/first page. This article will introduce how to create such a navigation button in PDF using Spire.PDF.
Step 1: Initialize an instance of PdfDocument class and load a PDF document.
PdfDocument doc = new PdfDocument(); doc.LoadFromFile(@"C:\Users\Administrator\Desktop\Sales Report.pdf");
Step 2: Enable creation of form fields in the document.
doc.AllowCreateForm = true;
Step 3: Get the last page.
PdfPageBase page = doc.Pages[doc.Pages.Count-1];
Step 4: Create a button field and specify the button name, tooltip and border style.
PdfButtonField button = new PdfButtonField(page, "Return to First Page"); button.Bounds = new RectangleF(page.ActualSize.Width/2-50, 400, 100, 20); button.BorderColor = new PdfRGBColor(Color.AliceBlue); button.BorderStyle = PdfBorderStyle.Solid; button.ToolTip = "First Page"; button.Font = new PdfFont(PdfFontFamily.Helvetica, 7f,PdfFontStyle.Bold);
Step 5: Create a PdfNamedAction that goes to the named destination (previous, next, first or last page) and add the action to the button field.
PdfNamedAction namedAction = new PdfNamedAction(PdfActionDestination.FirstPage); button.Actions.GotFocus = namedAction;
Step 6: Add the button to the document.
doc.Form.Fields.Add(button); doc.SaveToFile("NavigationButton.pdf", FileFormat.PDF);
Output:
Full Code:
[C#]
using Spire.Pdf; using Spire.Pdf.Actions; using Spire.Pdf.Fields; using Spire.Pdf.Graphics; using System.Drawing; namespace NavigationButtons { class Program { static void Main(string[] args) { PdfDocument doc = new PdfDocument(); doc.LoadFromFile(@"C:\Users\Administrator\Desktop\Sales Report.pdf"); doc.AllowCreateForm = true; PdfPageBase page = doc.Pages[doc.Pages.Count - 1]; PdfButtonField button = new PdfButtonField(page, "Return to First Page"); button.Bounds = new RectangleF(page.ActualSize.Width / 2 - 50, 400, 100, 20); button.BorderColor = new PdfRGBColor(Color.AliceBlue); button.BorderStyle = PdfBorderStyle.Solid; button.ToolTip = "First Page"; button.Font = new PdfFont(PdfFontFamily.Helvetica, 7f, PdfFontStyle.Bold); PdfNamedAction namedAction = new PdfNamedAction(PdfActionDestination.FirstPage); button.Actions.GotFocus = namedAction; doc.Form.Fields.Add(button); doc.SaveToFile("NavigationButton.pdf", FileFormat.PDF); } } }
[VB.NET]
Imports Spire.Pdf Imports Spire.Pdf.Actions Imports Spire.Pdf.Fields Imports Spire.Pdf.Graphics Imports System.Drawing Namespace NavigationButtons Class Program Private Shared Sub Main(args As String()) Dim doc As New PdfDocument() doc.LoadFromFile("C:\Users\Administrator\Desktop\Sales Report.pdf") doc.AllowCreateForm = True Dim page As PdfPageBase = doc.Pages(doc.Pages.Count - 1) Dim button As New PdfButtonField(page, "Return to First Page") button.Bounds = New RectangleF(page.ActualSize.Width / 2 - 50, 400, 100, 20) button.BorderColor = New PdfRGBColor(Color.AliceBlue) button.BorderStyle = PdfBorderStyle.Solid button.ToolTip = "First Page" button.Font = New PdfFont(PdfFontFamily.Helvetica, 7F, PdfFontStyle.Bold) Dim namedAction As New PdfNamedAction(PdfActionDestination.FirstPage) button.Actions.GotFocus = namedAction doc.Form.Fields.Add(button) doc.SaveToFile("NavigationButton.pdf", FileFormat.PDF) End Sub End Class End Namespace