Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
To make a PDF link clickable, add a link annotation over the text or graphic that should respond to a click. Add it while generating the PDF if you control the code; edit the finished file with a PDF editor such as Adobe Acrobat if it already exists. For internal links, point the annotation to a destination in the same document; for web links, use a URL. In every case, test the exported PDF in the viewers your readers use.
Choose when to add the link
| Method | Best for | What you control |
|---|---|---|
| PDFKit (Node.js) | PDFs generated by a Node.js application | Link rectangles, web URLs, and named internal destinations |
| ReportLab (Python) | PDFs generated by a Python application | Link rectangles, URLs, and document-local destinations |
| Adobe Acrobat | Adding links to an already-created PDF | Visually drawn link area, appearance, and action |
| LibreOffice export | Documents authored in LibreOffice | Source-document hyperlinks carried into the exported PDF |
A link is not merely colored or underlined text: it needs an active page region and an action or destination. The region is commonly represented by a rectangle. External web links use a URI; internal links navigate to a page view or named destination. Actions beyond ordinary navigation may depend on the PDF reader.
Add links while generating a PDF with PDFKit
PDFKit supports link(x, y, width, height, url, options) for external URLs and goTo(x, y, width, height, name, options) for internal destinations. Its documentation describes annotations as “interactive features of the PDF format.” The text and the annotation are separate: draw the visible label, measure its dimensions, then place the annotation over the same area.
Runnable Node.js example: external link
Install PDFKit in your project with npm install pdfkit. Save the following as make-pdf.js and run node make-pdf.js. It creates linked.pdf with a clickable web address:
#1 Best Overall
const PDFDocument = require('pdfkit');
const fs = require('node:fs');
const doc = new PDFDocument({ margin: 50 });
doc.pipe(fs.createWriteStream('linked.pdf'));
doc.fontSize(12).fillColor('black').text('Visit ');
const label = 'Example website';
const x = doc.x;
const y = doc.y;
const width = doc.widthOfString(label);
const height = doc.currentLineHeight();
doc.fillColor('blue').text(label, x, y, { continued: true });
doc.underline(x, y, width, height, { color: 'blue' });
// Add the annotation after drawing the label so it covers the intended text.
doc.link(x, y, width, height, 'https://example.com');
doc.text(' for more information.');
doc.end();
The geometry here is the text label’s measured width and line height. If you change the font, font size, label, or layout, the annotation coordinates should still be calculated from the rendered text rather than kept as unrelated constants. For a multi-line link, define an appropriate rectangle for each line or use layout that keeps the linked label on one line.
Internal destinations and overlapping annotations
For an internal jump, create a named destination at the target location using PDFKit’s destination support, then attach goTo to the source rectangle using the same name. Consult the PDFKit annotations documentation for the exact destination methods and supported options for your installed version. Keep names consistent and unique within the document.
PDFKit notes annotation stacking order matters: if annotations overlap, add the link last so another annotation does not obscure its click area. This is particularly important when a link sits over a button-like graphic or other interactive element.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesAdd links while generating a PDF with ReportLab
ReportLab offers canvas-level annotations as well as hyperlink markup in paragraphs. Its documentation says “PDF supports internal hyperlinks.” For a canvas link, linkAbsolute(contents, destinationname, Rect=...) defines the clickable rectangle and refers to a bookmark or named destination. Rectangle coordinates are in default user space, so transforms and coordinate conventions must match the API.
Runnable Python example: external and internal links
Install the library with python -m pip install reportlab. Save this as make_pdf.py and run python make_pdf.py. The example creates a page with an external URL and a second page with a local destination:
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
output = "linked.pdf"
c = canvas.Canvas(output, pagesize=letter)
# Page one: visible external link label and its clickable rectangle.
c.setFont("Helvetica", 12)
c.drawString(72, 720, "Open the example website")
c.linkURL(
"https://example.com",
(72, 718, 220, 734),
relative=0,
thickness=0,
)
# Add an internal target on page two, then point page one's link to it.
c.bookmarkPage("details")
c.showPage()
c.setFont("Helvetica", 16)
c.drawString(72, 720, "Details section")
c.bookmarkPage("details")
c.save()
For a complete internal-link example, place a source link on the first page and define its destination on the target page before saving. One straightforward approach is to create page one, draw the source text, reserve its rectangle, create page two, call bookmarkPage("details") at the target, and then add the source page’s internal annotation using linkAbsolute with that name. Keep destination creation and annotation coordinates aligned with the document’s page flow.
For inline paragraph text, ReportLab paragraph markup accepts <a> and <link> tags. References can target http:, pdf:, or same-document bookmarks; a missing scheme or a #anchor denotes a document-local target. Use the ReportLab paragraph documentation for markup details and its PDF features documentation for link annotations.
Recommended Free Tools
Add a link after the PDF already exists in Acrobat
In Adobe Acrobat, open the PDF and choose Edit > Link > Add or edit. Drag a rectangle around the text or graphic that should be clickable, choose the link appearance, and select the action. Adobe documents actions including Go to a page view, Open a file, Open a web page, and Custom link. For a web destination, enter the URL; for internal navigation, select the relevant page or section destination.
The rectangle—not the visible wording alone—is the hit area. Make it cover the whole label, but avoid extending over neighboring text or controls. Acrobat’s appearance settings let you choose whether the link border is visible or invisible. A visible outline can help during editing; an invisible appearance can preserve a cleaner final layout while leaving the annotation active.
Adobe’s guide explains that “Adding a link to your PDFs allows you to specify actions that make your document interactive for the users.” See Adobe’s instructions for links and attachments in PDFs.
Preserve hyperlinks when exporting from LibreOffice
If the source document is authored in Writer or another LibreOffice application, add the hyperlinks in that document and export it to PDF. LibreOffice’s help says hyperlinks in the source are exported automatically. The resulting PDF reader must support the linked file type, so export success alone does not guarantee that every action will behave identically in every viewer. See LibreOffice’s PDF export help.
Choose the right link type and hit area
- External URL: use a web destination for a website or other URI target. Check the exact address, including scheme such as
https://. - Internal navigation: use a named destination, bookmark, or page view. Confirm the target exists and that the document lands at the intended heading or page.
- Open a file or custom action: Acrobat exposes these action choices, but the reader’s PDF application and security settings affect what happens. Do not assume universal support.
- Visible label and geometry: draw the annotation over the exact text or graphic. The rectangle should be large enough for a touch screen without accidentally including adjacent content.
For code-generated PDFs, geometry can shift when fonts, line wrapping, page size, margins, or layout change. Calculate the region from the final layout or use paragraph-level link markup where appropriate. In an editor, inspect the saved page at normal zoom and check the region’s edges.
Test the exported PDF, not just the source
- Open the final saved PDF in the target desktop viewer and, when relevant, a mobile viewer.
- Click every external link and confirm the expected URL opens.
- Click each internal link and check that it reaches the intended page or section.
- Check that the clickable rectangle aligns with the visible label and is usable by touch.
- Repeat the checks after the final export or document-processing step.
- For file links or custom actions, verify the behavior in the specific reader your audience is likely to use.
Troubleshooting clickable PDF links
The text looks like a link but does nothing
Colored or underlined text is not necessarily an annotation. Add an actual link action with a rectangle over the text, then inspect the exported PDF rather than only the source document.
Only part of the label responds
The annotation rectangle is too small or its coordinates no longer match the layout. Recalculate width and line height after the final font and positioning are set, or redraw the rectangle in Acrobat.
The link opens the wrong page or no internal destination
Check that the bookmark or named destination exists, that the annotation refers to its exact name, and that the target is defined at the intended location. For ReportLab, ensure the target bookmark is created in the correct page flow.
Rank #4
A link works in one viewer but not another
Reader support varies, particularly for linked file types and specialized actions. Test the specific action across the viewers you intend to support and prefer ordinary web URLs or standard internal navigation when broad compatibility is important.
The link disappeared after export
Verify the source hyperlink and export path, then reopen the newly exported PDF and test it. LibreOffice says its PDF export carries source hyperlinks automatically, but the final artifact still needs to be checked in the target reader.
Or skip the browser setup
If the job is capturing a web page as a PDF rather than authoring a document, ScreenshotNeo can return a PDF from one API request. ScreenshotNeo is a website screenshot API and MCP server for developers. Cookie and consent banners are accepted before capture and more than 60 known consent platforms, newsletter popups, and chat widgets are removed; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. AI agents can use its MCP server tools, including capture_pdf. The free plan includes 1,000 shots a month with no card; paid plans start at $5 for 3,000.
Example cURL request (replace the URL with the page to capture):
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.pdf
See the ScreenshotNeo API documentation for PDF parameters and setup. For PDF captures, set the documented output format to PDF for your request. ScreenshotNeo captures a web page to PDF; it is not a tool for adding link annotations to an existing PDF. Learn more at ScreenshotNeo, or sign up free for 1,000 screenshots a month with no card.
Frequently Asked Questions
Can I make an existing PDF link clickable without regenerating it?
Yes. In Acrobat, use Edit > Link > Add or edit, draw the hit area, and assign a URL or other action.
Can a PDF link jump to a heading on another page?
Yes. Create a bookmark or named destination at the target and link to that destination.
Do hyperlinks survive LibreOffice PDF export?
LibreOffice documents automatic export of source hyperlinks; verify the saved PDF in the readers that matter to you.
Free tools Windows power users keep installed
One-click scans. No signup required.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

