PDF Destination
A PDF destination is a named or explicit target location within a PDF document — specifying a page, a position on that page, and a zoom level. Destinations are referenced by links, bookmarks (outlines), and GoTo actions to navigate within or between PDF documents. They can be stored directly in an action or registered in the document's name tree for reuse.
A PDF destination defines a target location within a PDF document — specifying not just a page but the exact position on that page and the zoom level at which it should be displayed. Destinations are used by links, bookmarks, and GoTo actions to enable within-document navigation.
Destinations are a fundamental part of PDF interactivity, defined in ISO 32000. They can be stored as arrays directly within action dictionaries (explicit destinations) or registered by name in the document's name tree (named destinations), allowing reuse by multiple links and bookmarks without duplication.
Explicit destination syntax
An explicit destination is an array with the following structure:
<code>[page /fitType parameters]</code>
Where <code>page</code> is an indirect reference to the target page object and <code>/fitType</code> determines how the view is positioned and zoomed:
<strong><code>/XYZ left top zoom</code></strong> — Navigate to the specified (left, top) position with a specified zoom factor. Null values mean "inherit current value." Most common type for precise navigation. <code>[pageRef /XYZ 72 720 1.5]</code> positions the view at x=72, y=720 (PDF coordinates) at 150% zoom.
<strong><code>/Fit</code></strong> — Fit the entire page within the viewer window.
<strong><code>/FitH top</code></strong> — Fit the page width; position at the specified top value. Commonly used by bookmarks that navigate to headings — the full width is visible.
<strong><code>/FitV left</code></strong> — Fit the page height; position at the specified left value.
<strong><code>/FitR left bottom right top</code></strong> — Fit the specified rectangle within the viewer window. Useful for navigating to a specific content area.
<strong><code>/FitB</code></strong> — Fit the page's bounding box (smallest rectangle containing all content) within the window.
<strong><code>/FitBH top</code></strong> — Fit bounding box width with specified top position.
<strong><code>/FitBV left</code></strong> — Fit bounding box height with specified left position.
The coordinates in destination arrays are in <strong>default user space</strong>: points (1/72 inch), with origin at the bottom-left of the page — the same coordinate system used by all PDF content. Note that this is the <em>opposite</em> of screen coordinates (which have origin at top-left). A link navigating to the top of a page at 792pt height would use <code>/XYZ 0 792 null</code>.
Named destinations and the document name tree
When multiple links or bookmarks point to the same location, embedding the destination array in each action is redundant and fragile (if the target page moves, all destination arrays must be updated). Named destinations solve this by registering a destination under a string key in the document's name tree.
<strong>Named destinations are stored in the document name tree</strong> — accessed via the document catalogue: <code>/Root /Names /Dests</code>. This is a PDF name tree (a sorted B-tree of string keys mapping to destination arrays). See <a href="https://pdftheguide.com/glossary/pdf-name-tree" target="_blank" rel="noopener">PDF Name Tree</a> for name tree structure details.
<strong>GoTo actions reference named destinations</strong>: <code><</S /GoTo /D (chapter-2-section-3)>></code> — the <code>/D</code> value is the name string key. The viewer looks up the name in the Dests name tree and navigates to the resolved destination array.
<strong>Authoring tool usage</strong> — Adobe InDesign and other document layout tools automatically create named destinations for cross-references, TOC entries, and index links. When a page is moved or renumbered, all named destinations automatically resolve correctly because the destination arrays reference page objects (not page numbers). This is a significant reliability advantage over page-number-based navigation.
<strong>URL fragment identifiers</strong> — Named destinations can also be referenced from outside the PDF using URL fragment identifiers: <code>https://example.com/doc.pdf#chapter-2-section-3</code>. Most PDF viewers that support JavaScript or URL fragment navigation will jump to the named destination when the PDF is opened with this URL. This enables deep linking into PDFs from web pages.
Destinations in bookmarks and links
<strong>Bookmarks (Outlines)</strong> — The PDF outline (document bookmark tree, visible in the Bookmarks panel) uses destinations to navigate to each bookmarked location. Each outline item is a dictionary with a <code>/Dest</code> entry (destination array or name) or an <code>/A</code> (action) entry. The <code>/Title</code> entry is the visible bookmark text. The <code>/Count</code> entry indicates whether child items are expanded or collapsed. A typical bookmark: <code><< /Title (Chapter 2) /Dest [pageRef /FitH 720] /Next ... /Prev ... >></code>.
<strong>Link annotations</strong> — Link annotations contain either a <code>/Dest</code> entry (for same-document navigation) or an <code>/A</code> action. For URI links (web URLs), the action is <code><</S /URI /URI (https://example.com)>></code>. For within-document navigation, using <code>/Dest</code> directly or a <code>/GoTo</code> action referencing a named destination is more robust than hard-coding page indices.
<strong>Cross-document links (GoToR)</strong> — The <code>/GoToR</code> (Go To Remote) action navigates to a destination in a different PDF file: <code><</S /GoToR /F (other-doc.pdf) /D [3 /FitH 720]>></code>. The <code>/F</code> entry specifies the target file (relative path or full file specification). Page indices (integers) are used instead of page object references in GoToR destinations because the viewer must resolve the target page in a different document. Cross-document links work best when both documents are in the same directory or when absolute paths are used.
<strong>Destinations and PDF/A</strong> — Named destinations are fully permitted in all PDF/A variants. However, <code>/GoToR</code> cross-document links are prohibited in PDF/A because they create external dependencies. Same-document destinations (<code>/GoTo</code>) are permitted.
Frequently asked questions
What is the difference between a named destination and an explicit destination?
An explicit destination is a destination array embedded directly in a link or bookmark action: e.g., [pageRef /XYZ 72 720 1.0]. The destination is self-contained but cannot be reused — every link pointing to the same location needs its own destination array. A named destination is a key-value entry in the document's name tree (/Names /Dests) that maps a string name to a destination array. Links and bookmarks reference the name string rather than the array directly. Named destinations allow: (1) reuse — many links can point to the same named destination; (2) stability — if the page moves, only the named destination's array needs updating, not every link that references it; (3) external deep links — URLs can reference named destinations as fragment identifiers (#name). For any document with cross-references, TOC entries, or index links, named destinations are strongly preferred.
How do I create a table of contents with internal links in a PDF?
The most reliable way is to create the TOC in the source document (Word, InDesign, Pages) using the application's native TOC feature, then export to PDF — the application creates Link annotations pointing to named destinations at each heading. In Microsoft Word: use Styles (Heading 1, Heading 2, etc.), insert a Table of Contents (References > Table of Contents), and export to PDF with hyperlinks enabled — Word creates Link annotations for each TOC entry. In Adobe InDesign: use paragraph styles, generate a TOC (Layout > Table of Contents), and export with Create Tagged PDF and Hyperlinks — InDesign creates both bookmarks and TOC link annotations. For post-hoc TOC addition to an existing PDF, Adobe Acrobat Pro's Bookmarks panel lets you add bookmarks that navigate to destinations, but these appear in the Bookmarks panel rather than as in-page TOC links.
Can I link to a specific page in a PDF from a webpage?
Yes, using URL fragment identifiers. For named destinations: use #destinationName as a URL fragment — https://example.com/document.pdf#chapter-two. For page numbers: some PDF viewers support #page=N syntax (1-indexed) — https://example.com/document.pdf#page=5. Browser support varies: Chrome's built-in PDF viewer supports #page=N; Firefox with PDF.js supports both #page=N and named destinations; Adobe Reader/Acrobat in browser plugins supports named destinations. For reliable cross-browser deep linking, named destinations with explicit /XYZ or /FitH coordinates are the most widely supported. If the PDF is served from a server, ensure the HTTP response does not include Content-Disposition: attachment (which forces download rather than browser display) — the fragment identifier only works when the PDF is displayed inline.