Search Results for

    Show / Hide Table of Contents

    Class LinkAnnotation

    Creates a clickable link annotation that navigates to a specific page within the same PDF document. Useful for building custom tables of contents, cross-references, and in-document navigation.

    // Add a link on page 0 that navigates to page 5:
    var link = new LinkAnnotation(pageIndex: 0, destinationPageIndex: 5)
    {
        X = 50, Y = 700,
        Width = 200, Height = 20
    };
    pdf.Annotations.Add(link);
    
    // Custom TOC link with color:
    var tocLink = new LinkAnnotation(0, 3)
    {
        X = 72, Y = 600,
        Width = 300, Height = 16,
        Contents = "Chapter 1 - Introduction"
    };
    pdf.Annotations.Add(tocLink);

    The link annotation creates an invisible clickable region on the page.

    See: https://ironpdf.com/how-to/annotations/

    Coordinate note: The Y property sets the bottom edge

    of the clickable area using PDF coordinates (origin at bottom-left of page). When positioning

    links over existing text using PdfPage.TextChunks, use BoundingBox.Bottom for Y and Math.Abs(BoundingBox.Top - BoundingBox.Bottom) for Height.

    Inheritance
    System.Object
    PdfClientAccessor
    LinkAnnotation
    Implements
    IAnnotation
    Namespace: IronPdf.Annotations
    Assembly: IronPdf.dll
    Syntax
    public class LinkAnnotation : PdfClientAccessor, IAnnotation

    Constructors

    LinkAnnotation(Int32, Int32)

    Creates a link annotation on the specified page that navigates to a destination page. The annotation must be added to the document via Annotations.

    Declaration
    public LinkAnnotation(int pageIndex, int destinationPageIndex)
    Parameters
    Type Name Description
    System.Int32 pageIndex

    Zero-based index of the page where the link is placed.

    System.Int32 destinationPageIndex

    Zero-based index of the page to navigate to when clicked.

    LinkAnnotation(Int32, Int32, String)

    Creates a link annotation on the specified page that navigates to a destination page, with descriptive text for identification. The annotation must be added to the document via Annotations.

    Declaration
    public LinkAnnotation(int pageIndex, int destinationPageIndex, string contents)
    Parameters
    Type Name Description
    System.Int32 pageIndex

    Zero-based index of the page where the link is placed.

    System.Int32 destinationPageIndex

    Zero-based index of the page to navigate to when clicked.

    System.String contents

    Descriptive text for the link annotation.

    Properties

    AnnotationIndex

    Annotation index (of a given page)

    Declaration
    public int AnnotationIndex { get; set; }
    Property Value
    Type Description
    System.Int32

    Color

    Gets or sets the color of the link annotation border.

    Declaration
    public Color Color { get; set; }
    Property Value
    Type Description
    IronSoftware.Drawing.Color

    Contents

    Gets or sets the descriptive text content for this link annotation.

    Declaration
    public string Contents { get; set; }
    Property Value
    Type Description
    System.String

    DestinationBottom

    Gets or sets the bottom coordinate of the destination position, in points. Used by PageRect.

    Declaration
    public int DestinationBottom { get; set; }
    Property Value
    Type Description
    System.Int32

    DestinationLeft

    Gets or sets the left coordinate of the destination position, in points. Used by PageZoom, PageX, PageRect, and PageBoundsX.

    Declaration
    public int DestinationLeft { get; set; }
    Property Value
    Type Description
    System.Int32

    DestinationPageIndex

    Gets or sets the zero-based page index to navigate to when this link is clicked. Page 1 = index 0, Page 2 = index 1, etc.

    Declaration
    public int DestinationPageIndex { get; set; }
    Property Value
    Type Description
    System.Int32

    Zero-based destination page index.

    DestinationRight

    Gets or sets the right coordinate of the destination position, in points. Used by PageRect.

    Declaration
    public int DestinationRight { get; set; }
    Property Value
    Type Description
    System.Int32

    DestinationTop

    Gets or sets the top coordinate of the destination position, in points. Used by PageZoom, PageY, PageRect, and PageBoundsY.

    Declaration
    public int DestinationTop { get; set; }
    Property Value
    Type Description
    System.Int32

    DestinationType

    Gets or sets the destination type that controls how the page is displayed when the link is clicked. Default is Page which fits the entire destination page in the window. Use PageY with DestinationTop to scroll to a specific vertical position, or PageZoom for full control over position and zoom.

    Declaration
    public BookmarkDestinations DestinationType { get; set; }
    Property Value
    Type Description
    BookmarkDestinations

    Destination type (default: Page).

    DestinationZoom

    Gets or sets the zoom level (in percent) for the destination. Used by PageZoom. A value of 0 means inherit the current zoom.

    Declaration
    public int DestinationZoom { get; set; }
    Property Value
    Type Description
    System.Int32

    Height

    Gets or sets the height of the clickable link area, in points.

    Declaration
    public int Height { get; set; }
    Property Value
    Type Description
    System.Int32

    Hidden

    Gets or sets whether the link annotation is hidden from users.

    Declaration
    public bool Hidden { get; set; }
    Property Value
    Type Description
    System.Boolean

    PageIndex

    Gets or sets the zero-based page index where this link annotation is placed. Page 1 = index 0, Page 2 = index 1, etc. (default: 0 - first page).

    Declaration
    public int PageIndex { get; set; }
    Property Value
    Type Description
    System.Int32

    Zero-based page index (default: 0).

    Rectangle

    Gets or sets the position and size of the clickable link area.

    Declaration
    public Rectangle Rectangle { get; set; }
    Property Value
    Type Description
    IronSoftware.Drawing.Rectangle

    Title

    Gets or sets the title of the link annotation.

    Declaration
    public string Title { get; set; }
    Property Value
    Type Description
    System.String

    Width

    Gets or sets the width of the clickable link area, in points.

    Declaration
    public int Width { get; set; }
    Property Value
    Type Description
    System.Int32

    X

    Gets or sets the horizontal X position from the LEFT edge of the page, in points. 72 points = 1 inch.

    When using BoundingBox from text extraction: Use BoundingBox.Left for this value.

    Declaration
    public int X { get; set; }
    Property Value
    Type Description
    System.Int32

    Horizontal position in points from left edge (default: -1 if not set).

    Y

    Gets or sets the vertical Y position from the BOTTOM edge of the page, in points. 72 points = 1 inch. PDF coordinate system places Y=0 at bottom of page.

    When using BoundingBox from text extraction: Use BoundingBox.Bottom (not BoundingBox.Top) for this value, since Y defines the bottom edge of the clickable area and BoundingBox uses the same PDF coordinate system.

    var box = textChunk.BoundingBox;
    link.Y = (int)box.Bottom;       // correct — aligns with text
    link.Height = (int)Math.Abs(box.Top - box.Bottom);
    // link.Y = (int)box.Top;       // wrong — places link above the text
    Declaration
    public int Y { get; set; }
    Property Value
    Type Description
    System.Int32

    Vertical position in points from bottom edge (default: -1 if not set).

    Methods

    ToString()

    Returns a System.String that represents this link annotation.

    Declaration
    public override string ToString()
    Returns
    Type Description
    System.String

    Implements

    IAnnotation
    ☀
    ☾
    Downloads
    • Download with Nuget
    • Start for Free
    In This Article
    Back to top
    Install with Nuget
    IronPDF_for_dotnet_log2o
    Blue key in circleGet started for FREE
    No credit card required
    Test in a live environment

    Test in production without watermarks.
    Works wherever you need it to.

    Fully-functional product

    Get 30 days of fully functional product.
    Have it up and running in minutes.

    24/5 technical support

    Full access to our support engineering team during your product trial

    Grey key in circleGet started for FREE
    The trial form was submitted successfully.
    Calendar in circleBook Free Live Demo
    No contact, no card details, no commitments Book a 30-minute, personal demo.
    Here's what to expect:

    A live demo of our product and its key features

    Get project specific feature recommendations

    All your questions are answered to make sure you have all the information you need. (No commitment whatsoever.)

    Grey key in circleBook Free Live Demo
    Your booking has been completed Check your e-mail for confirmation
    Support Team Member 6 related to The C# PDF Library Support Team Member 14 related to The C# PDF Library Support Team Member 4 related to The C# PDF Library Support Team Member 2 related to The C# PDF Library
    Online 24/5
    Need help? Our sales team would be glad to help you.
    Try the Enterprise Trial
    ironpdf_for_dotnet_log2o
    Key in blue circle
    Get your free 30-day Trial Key instantly.
    bullet_checkedNo credit card or account creation required
    Key in blue circle
    Get your free 30-day Trial Key instantly.
    Blue key in circleNo credit card or account creation required
    Green Check in orange circle
    The trial form was submitted successfully.
    badge_greencheck_in_yellowcircle
    Thank you for starting a trial

    Please check your email for the trial license key.

    If you don’t receive an email, please start a live chat or email support@ironsoftware.com

    Install with NuGet
    View Licensing
    • Logo Aetna
    • Logo NASA
    • Logo GE
    • Logo Porsche
    • Logo USDA
    • Logo Qatar
    Join Millions of Engineers who’ve tried IronPDF