PDF Highlights & Comments Extractor

Pull every highlight, sticky note and comment out of a PDF and into a list you can work with. The highlighted words themselves are recovered from the page, so you get the sentence you marked rather than a coloured box.

How to use it

Underlines, strikeouts, typed boxes and drawings come out along with the highlights and sticky notes, each kept with the page it sits on.

  1. Drop the PDF in Or click the box and choose one. The file is read in this tab: nothing is uploaded, which is the only reason a tool like this is safe to use on a contract or a manuscript.
  2. Wait for the page pass Recovering highlighted text means laying out each page's text again, which is the slow part. A long, heavily marked document takes a few seconds; you can switch it off in the panel if you only want the comments.
  3. Filter down to what you want By type, by highlight colour, by who made it, or by a word in the text. Colour filtering is the useful one if you colour-code as you read.
Full instructions
Drop a PDF here or click to choose one. It never leaves this tab.
In depth

Why getting your highlights out of a PDF is harder than it should be

Marking up a document is easy. Getting those marks back out as something you can work with — a set of quotations, a list of comments, a file another program can read — is oddly difficult, and the difficulty has a specific technical cause worth understanding. This piece explains how annotations are actually stored, why a highlight does not contain the words it covers, what makes some documents impossible to extract from, and how to mark up a document so that the notes are worth having later.

A PDF is a page description, not a document

The root of every difficulty here is that a PDF does not describe a document in the way a word processor file does. It describes a page: put this glyph at this position, in this font, at this size. There is no paragraph, no sentence, often not even a word — just a stream of instructions for painting marks on a rectangle.

That design is why PDFs look identical everywhere, which was the whole point when the format was created. It is also why every operation that requires understanding the content, rather than reproducing it, has to reconstruct meaning that was thrown away when the file was made.

Text extraction from a PDF is therefore always an inference. Good extraction is very good, and modern files usually carry enough extra information to make it reliable, but it is reconstruction rather than reading.

Annotations are a separate layer

Annotations do not live in the page content at all. They are a separate list attached to each page, and each one is a small record with its own type, position, colour, author, timestamp and comment text. This is genuinely good news: that part is structured data and can be read exactly.

It also explains a behaviour people find odd. A comment added in one reader appears in another, and can be edited or deleted there, because it was never merged into the page. The underlying document is untouched by highlighting it, which is why marking up a signed contract does not invalidate the signature.

The types are more varied than most people realise. Highlight, underline, strikeout and squiggly are text markup. Sticky notes, typed boxes, freehand drawings, shapes, stamps and file attachments are all annotations too, and all of them can carry a comment.

What a highlight actually stores

A highlight records four corners for each line it covers, expressed as coordinates on the page, plus a colour. That is all. It does not store the text underneath, because it does not need to: to draw a highlight you only need to know where to put the yellow.

So recovering the words means going the long way round. The page's content has to be interpreted — every text-positioning instruction, every font, every character width — to work out where each glyph sits. Then, for each highlight, the glyphs inside its corners are collected and put back into order.

This is why extraction takes a moment on a long document, and why it occasionally comes up short. Everything else about an annotation is a lookup; this one part is a reconstruction of the page.

Fonts are where it goes wrong

Once a font is embedded in a PDF, the codes in the content stream are not necessarily letters. They are indexes into that particular font's own glyph table, and a subsetted font — one that includes only the characters actually used — may number them in whatever order suited the program that made it.

Well made files include a mapping from those codes back to real characters. It exists specifically so that text can be searched and copied, and when it is present, extraction is exact. When it is missing, the codes are just numbers, and any attempt to guess what they mean produces confident nonsense.

That is the reason a careful extractor sometimes says nothing rather than something. A quotation you cannot trust is worse than an acknowledged gap, because the gap is visible and the wrong quotation is not.

Scans have nothing underneath

A scanned document is a picture of a page. If nobody has run character recognition over it, there is no text in the file at all — just an image and, if it has been annotated, some coloured rectangles drawn on top of it.

A highlight on such a page is perfectly valid as an annotation. It has a position, a colour, an author and possibly a comment, and all of that comes out cleanly. What cannot come out is the sentence, because the sentence was never in the file.

The test is simple and worth doing before you spend time: try to select the text in your usual reader. If the cursor draws a box rather than selecting words, the page is an image, and recognition software is the only route to the words.

Reading order is an assumption

Annotations come out of a file in whatever order the file lists them, which is usually the order they were made rather than the order they appear on the page. Sorting them by position is nearly always what a reader wants, and the natural rule is top to bottom and then left to right.

That rule is right for ordinary prose and wrong for two-column layouts, where it reads across the gutter and interleaves the columns. Academic papers, newspapers and many reports are laid out this way, so it is worth knowing before wondering why the order looks scrambled.

The same limitation affects tables, sidebars and anything with a caption beside it. There is no general solution that does not involve analysing the page layout, which is a much larger problem than reading the annotations.

Marking up so that the notes are useful later

Since the colour, the author and the comment all survive extraction perfectly, they are the parts worth using deliberately. A consistent colour scheme — one for evidence, one for objections, one for things to follow up — becomes a filter later, and costs nothing at the time.

Adding a short comment to an important highlight is worth far more than the few seconds it takes. The quotation tells you what the document said; the comment tells you why you cared, which is the thing you will not remember in three months.

Highlighting whole paragraphs is less useful than it feels. A highlight that covers everything conveys nothing when it comes back as a list, and a list of full paragraphs is just the document again. Marking the sentence that carries the point produces notes you can actually read.

Encryption, permissions and the ones that will not open

Some PDFs are encrypted. Where there is a password, the content genuinely cannot be read without it, and that is the intended behaviour rather than a bug in whatever is trying to open it.

Others carry permission flags that ask readers not to allow copying or editing while remaining readable. These are honoured by convention rather than enforced by mathematics, but the sensible thing for any tool is to respect them.

The practical route when a file will not open is to open it in the reader you normally use, with the password if you have one, and save a copy without protection. If you do not have the password, the answer is to ask whoever produced the file rather than to look for a way round it.

Why doing this locally matters

The documents people annotate are, almost by definition, the documents they are working on closely: contracts, drafts, medical letters, research under embargo, papers under review. That is precisely the category least suitable for uploading to a website in exchange for a convenience.

There is no technical reason it needs to be uploaded. Everything described here — parsing the structure, decompressing the streams, laying out the text, matching the highlights — is ordinary computation that a browser can do perfectly well on the machine in front of you.

The check is easy if you want to make it. Load the page, disconnect from the network, and then open the file. Anything that still works was never sending your document anywhere, and anything that stops was.

It is worth applying the same test to the other end of the process as well. Notes extracted from a confidential draft are as sensitive as the draft itself, and pasting them into an online notepad or a shared document undoes whatever care was taken opening the file. Save them to a folder you already trust with the original, and the chain holds all the way through.

Help

Getting your notes out of a PDF

Underlines, strikeouts, typed boxes and drawings come out along with the highlights and sticky notes, each kept with the page it sits on. There are five ways out - Markdown, plain text, a spreadsheet, JSON or a web page - so the notes can go straight into whatever you write in. A drawing has no words underneath it to recover, so it arrives as a marker rather than as text.

Drop the PDF in

Or click the box and choose one. The file is read in this tab: nothing is uploaded, which is the only reason a tool like this is safe to use on a contract or a manuscript.

Wait for the page pass

Recovering highlighted text means laying out each page's text again, which is the slow part. A long, heavily marked document takes a few seconds; you can switch it off in the panel if you only want the comments.

Filter down to what you want

By type, by highlight colour, by who made it, or by a word in the text. Colour filtering is the useful one if you colour-code as you read.

Choose a format

Markdown for notes apps, plain text for anywhere, CSV for a spreadsheet, JSON for a script, or a self-contained web page you can open and print.

Download or copy

Only what is currently showing is saved, so a filter is also a way of exporting one reader's comments or one colour of highlight on its own.

What it can and cannot do

Structure, comments, authors, dates and colours are read exactly from the file. Recovering the highlighted words is best effort: it handles the fonts almost every real document uses, including embedded subsets with a character map, but a font with an unusual encoding and no map cannot be decoded and the tool says so rather than printing nonsense. It reads annotations; it does not change the PDF, and there is nothing here that writes one.

Good to know

A highlight does not contain its text

It stores four corners per line and a colour. The words have to be found by working out where every character on the page sits and asking which ones fall inside. That is why this can take a moment, and why it occasionally comes up short.

Scans have nothing to recover

If the page is a photograph of paper with no text layer, a highlight sits over an image and there are no characters underneath. The comment attached to it still comes out exactly; the quoted text cannot.

Colours are named, not just numbered

Each highlight's colour is matched to the nearest of the usual ten and named, so a workflow of yellow for facts and pink for objections survives the export intact.

Order follows the page

Annotations come out page by page, top to bottom and then left to right. On a two-column layout that means down the whole page rather than down each column, which is worth knowing before you wonder why an order looks odd.

Encrypted files cannot be read

A password-protected PDF has to be decrypted first, and doing that without the password is not something a tool should attempt. Open it in your reader, save an unprotected copy, and try that.

It works offline

Once the page has loaded there is no further network use at all. No library is fetched, because the PDF parser here is part of the page.

Common questions

Does the PDF get uploaded?
No. It is read with the browser's own file reader and parsed by JavaScript running in this tab. Nothing is sent anywhere at any point, which you can confirm by loading the page and then turning off your connection.
Can it get the text I highlighted, not just the note?
Yes, in most documents. A highlight only records the corners of the area it covers, so the words are found by laying out the page's text and taking the characters inside those corners. Where that works you get the quotation; where the font or the page defeats it, the tool tells you rather than guessing.
Why did some highlights come out empty?
Usually because the page is a scan with no text layer, so there is nothing under the highlight but an image. Occasionally it is a font with an encoding that cannot be mapped to characters. Either way the comment attached to the highlight is still extracted exactly.
Which annotation types are supported?
Highlights, underlines, strikeouts and squiggly underlines, plus sticky notes, typed text boxes, drawings, shapes, lines, stamps and file attachments. Links and popup windows are skipped, because a link is not a comment and a popup belongs to another annotation.
What formats can I export to?
Markdown with a heading per page and each quotation as a blockquote, plain text, a CSV with one row per annotation, JSON for scripting, and a standalone web page. Only what is showing after the filters is written.
Can I pull out just one person's comments?
Yes. The Made by menu lists every author found in the file with a count. Choose one and everything — the display, the download and the copy — narrows to their annotations only.
Can I filter by highlight colour?
Yes. Colours are matched to the nearest standard name, so if you highlight in yellow for quotations and green for actions you can export each set separately.
It says the file could not be read.
The most common cause is encryption: a password-protected PDF cannot be parsed without the password. Open it in your usual reader, save a copy without protection and try again. A truncated or partially downloaded file will also fail.
Is it slow on big documents?
Recovering highlighted text is the slow part, because every page with a highlight has to be laid out. Turning that option off in the panel gives a much faster pass that still returns every comment, author, date and colour.
Does it modify my PDF?
No. The file is opened read-only and nothing is written back. There is no code here that produces a PDF at all.