Skip to content
Lizely

PDF Link Extractor

List external and internal PDF link annotations by page, then copy or download a safe report locally.

Privacy: your files never leave your device. All processing happens locally in your browser.

How to use

  1. 1.Choose one PDF up to 25 MiB; encrypted, damaged, and over-limit documents are rejected.
  2. 2.Click Extract Links to inspect supported link annotations in page and annotation order.
  3. 3.Review the inert targets, then copy the report or download a formula-safe CSV or UTF-8 TXT file.

About PDF Link Extractor

PDF Link Extractor reads clickable link annotations from a PDF and produces a page-ordered report in your browser. Choose a local document, start extraction, then review each supported target with its page number and link type. You can copy the plain-text report or download TXT and CSV versions. The PDF and extracted targets remain on your device; Lizely does not upload the document or send its contents to a link-analysis server.

The tool uses PDF.js annotation data rather than searching raw PDF bytes for strings that resemble URLs. That distinction reduces false positives from compressed streams, font data, metadata, and ordinary printed text. It finds links represented as PDF link annotations, including supported external URLs and named or explicit internal destinations exposed by PDF.js. A URL printed as visible text but not made clickable may not appear, because it is not a link annotation.

External targets are accepted only when they use a narrow set of useful schemes: HTTP, HTTPS, mailto, or tel. Scheme checks are case-insensitive and reject control characters. JavaScript, data, file, blob, and other unapproved schemes are excluded from the report instead of being made clickable. The result is displayed as inert text; the tool does not navigate to, fetch, validate, reputation-check, or guarantee the safety of any extracted destination.

Internal PDF destinations do not always have a web URL. They may be named destinations or explicit destination arrays that point to another location in the same document. The report labels these as internal targets and serializes a bounded, readable representation. It does not claim to resolve every destination to a final page number, because destination structures, page references, and viewer behavior can vary across documents.

Results preserve page order and annotation order. Exact duplicates on the same page are removed while a repeated link on different pages remains visible, since page occurrence is useful evidence. The summary includes examined annotation counts, accepted links, duplicates, and skipped unsafe or unsupported targets. Limits on pages, annotations, target length, and total report characters prevent one document from creating unbounded work or output.

CSV output includes page, annotation number, type, and target columns. Cells that begin with spreadsheet formula prefixes are neutralized before serialization, and quotes and line breaks are escaped using CSV rules. This prevents an extracted target from becoming a formula when a user later opens the report in spreadsheet software. TXT output is UTF-8 plain text and uses stable page labels. Copying uses the same safe, inert report.

The source file may be up to 25 MiB and 40 pages. Encrypted, malformed, unsupported, or over-limit PDFs return a visible error. PDF.js and its shared worker load only after the user presses the button, remain outside the initial page bundle, and share the fixed worker URL used by the other PDF.js tools. A replacement job cancels the earlier one, and PDF pages, loading tasks, download URLs, and transient state are cleaned up.

Use this tool for inventory, migration checks, document QA, or reviewing where a PDF sends readers. It is not a crawler, broken-link checker, phishing detector, accessibility audit, or content scanner. A target's presence says only that PDF.js exposed a supported link annotation. Verify important destinations independently before visiting or publishing them, and keep the original PDF unchanged as the source record.

Methodology & sources

Load a bounded PDF after explicit user action, request PDF.js page annotations, select link annotations with supported external or internal destination fields, reject unsafe schemes and controls, preserve page order, deduplicate exact same-page targets, enforce annotation and output budgets, serialize inert TXT and formula-neutralized CSV, and destroy loading tasks and download URLs on replacement.

Frequently asked questions

Does the tool visit extracted links?
No. It reads annotation targets as inert text and never fetches, opens, validates, or reputation-checks them.
Why is a printed URL missing?
Visible text is not necessarily a clickable PDF link annotation. This tool reads annotations rather than searching all text for URL-like strings.
Which external schemes are included?
Only HTTP, HTTPS, mailto, and tel targets are accepted. JavaScript, data, file, blob, control-character, and unsupported schemes are skipped.
Is the CSV safe to open?
Fields are escaped and formula-leading values are neutralized, but you should still treat all document-derived text as untrusted data.

PDF Tools guides

View all