PDF Add Hyperlinks — Make URLs Clickable Online
Make every URL, email and phone number in a PDF clickable. The tool scans the text layer, locates each match, and adds a standards-compliant link annotation over the corresponding rectangle.
Drop your PDF file hereTap to select a file
Supports PDF, up to 100MB
What to do next
Related tools
PDF to HTML
Convert a PDF document to HTML format.
pdfFlatten PDF
Flatten form fields, annotations, and layers in a PDF to make content non-editable and static.
pdfMerge PDF
Combine multiple PDF files into one document.
pdfRedact PDF
Automatically detect and redact sensitive data (SSN, email, phone numbers) from a PDF with black boxes.
pdfProtect PDF
Add password protection to a PDF file.
pdfSign PDF
Draw, type, or upload a signature onto your PDF.
pdfAbout PDF Add Hyperlinks
Most PDFs are full of URLs that look clickable but are not. The text says "see https://example.com/whitepaper" but a click on that line in most PDF viewers just selects text — there is no actual hyperlink annotation underneath. The PDF Add Hyperlinks tool fixes this in one pass. It scans the text layer, finds every URL, email address and phone number, and adds a standards-compliant link annotation over each match, so the resulting PDF behaves the way readers expect.
Detection runs on the same RFC 3986-compatible URL pattern that pdf-lib's own URL parser uses, extended to also catch bare domains (the "www.example.com" form that browsers auto-prefix with https://), email addresses (turned into mailto: links), and phone numbers in the international or local-friendly format (turned into tel: links). The tool reads the text layer through Mozilla's PDF.js renderer to obtain the per-glyph bounding boxes, then merges adjacent glyphs into a single string so a URL split across two text-show operators inside one visible word is still found. For every match we interpolate the bounding boxes of the contributing glyphs to compute a tight rectangle, and pdf-lib attaches a /Link annotation over that rectangle pointing at the resolved URI.
Where this tool earns its keep is the edge cases. PDFs exported from Word and Pages sometimes split a single visible URL across many text-show operators in the underlying content stream (Word does this whenever a URL contains a kerning pair or a ligature; Pages does it for almost every URL longer than ten characters). A naive per-item regex would miss those URLs entirely. The merging pass before the regex run handles that case correctly. PDFs from LaTeX engines often output URLs with line breaks in the middle — those are detected and a single annotation spans both lines. PDFs with embedded annotations from a previous Auto-Detect-URLs pass are noticed and the existing annotations are not duplicated.
Two limits are worth knowing. The detector requires a real text layer, so a scanned PDF without OCR has nothing to scan; run OCR PDF first to add a text layer. And extremely fragmented text (where each character is its own text-show operator with custom kerning) can defeat any text-based parser — those documents are rare but they exist, and the workaround is to paste the URLs you want to link into the manual override field. The tool reports how many links it added per page so you can spot pages where detection failed.
How it works
- 1Drop a PDF onto the upload area. Files up to 100 MB are accepted; larger PDFs work but the regex pass over a long text layer can be slow on phones.
- 2Mozilla’s PDF.js extracts the text layer with per-glyph bounding boxes for every page.
- 3The detector merges adjacent glyphs into reading-order strings and runs a URL/email/phone regex over each one.
- 4For every match the tool interpolates the bounding boxes of the contributing glyphs to compute a tight rectangle.
- 5pdf-lib attaches a /Link annotation over each rectangle with a /URI action pointing at the resolved target.
- 6Download the result. Open it in any PDF viewer; every URL, email and phone number is now clickable.
Common use cases
- Make every URL in a marketing whitepaper exported from Word actually clickable before sending it to a press list
- Add clickable email addresses to a printed-style company directory PDF so colleagues can launch a draft email with a click
- Auto-link references and DOIs in an academic PDF so reviewers do not have to copy-paste every citation manually
- Make phone numbers in a customer-service one-pager tappable on mobile so a tap launches the dialer
- Add interactivity to a slide deck export so audience members can jump to source material without retyping URLs
- Restore link interactivity on a form designed in Word that lost its hyperlinks during the print-to-PDF export
FAQ
What kinds of links are detected?
Web URLs that begin with http:// or https://, bare domains followed by a path or query string, mailto: and tel: targets, and email addresses or phone numbers in plain text — those are auto-prefixed when the link annotation is created.
Will it work on a scanned PDF?
No. The detection runs over the PDF text layer; a scanned PDF without OCR has no text layer for the regex to match. Run the file through OCR PDF first to add a searchable text layer, then the hyperlink tool will pick up every URL it can read.
Does my file get uploaded?
No. The PDF is processed entirely inside your browser tab using pdf-lib. The URLs are added as link annotations in memory and the resulting file is offered as a download.
Why are some links missed?
PDF text content is sometimes split across multiple text-show operators in ways that break a single URL across an invisible boundary. The detector handles the common cases but extremely fragmented text can defeat any text-based parser. If a known URL is missed, you can paste it manually into the override list.
How big can the PDF be?
Up to 100 MB. Larger documents work in principle but the regex pass over a long text layer can be slow on phones.
Why are some links missed?
Two reasons. First, PDF text content is sometimes fragmented across many text-show operators in ways that even the merging pass cannot reassemble — extremely rare but it happens with old LaTeX engines and some legal-document templates. Second, the URL has to be in the text layer; a URL that exists only in a rasterised image is invisible to a text-based detector. For both cases, paste the URLs you want to link into the manual override field.
Will it work on a scanned PDF?
Only if the scan has a text layer (i.e. it has been OCRed). A pure scan with no text is just an image; there is no text to scan. Run the file through OCR PDF first to add a searchable text layer, then this tool can pick up every URL it can read in that layer.
Does it modify the existing PDF content?
No. Link annotations are added as new objects in the PDF; the source content stream is unchanged. If you do not like the result you can run the original through the tool again with different settings — the original is on your disk untouched.
Can I add custom hyperlinks at specific positions?
Yes — the manual override field accepts a JSON array of {page, rect, uri} entries that the tool adds in addition to the auto-detected matches. This is useful when the auto-detector misses a target or when you want to link to an internal anchor (e.g. another page in the same PDF).
Will the links work on every PDF viewer?
Yes. /Link annotations with a /URI action are part of the core PDF specification and have worked in every major viewer since the original PDF specification. every major desktop and mobile PDF viewer all render them correctly.
Does it detect URLs that span lines?
Yes — the merging pass treats text on the same baseline as one logical line, and URL detection runs over the merged string. A URL that wraps across two visual lines because of word-wrap is still detected as one match.
Is anything uploaded?
No. Everything happens locally — Mozilla’s PDF.js parses the text layer in your browser, the regex runs over the parsed text, and pdf-lib writes the annotated output. No file uploads, no server calls.