Highlight, strike through, draw, and add notes — saved as real, editable PDF annotations
| You use | Written to the PDF as | Carries | Editable later? |
|---|---|---|---|
| 🖍️ Highlight | /Subtype /Highlight | Colored quad-point rectangles over each line | Yes — Acrobat, Preview, most viewers |
| ̶S̶ Strike | /Subtype /StrikeOut | Strike lines over the selected text | Yes |
| ✎ Draw | /Subtype /Ink | Freehand stroke path with width and color | Yes |
| 🔤 Text | /Subtype /FreeText | Typed text with font size and color | Yes |
| 🗨️ Note | /Subtype /Text | Sticky-note icon with your comment as its content | Yes |
Because the output speaks the PDF spec's own annotation vocabulary instead of flattening marks into pixels, annotations survive round-trips through other editors — and can be hidden or deleted there if a reviewer changes their mind.
Annotating a PDF should not require an account, a subscription, or uploading a contract to somebody's server. This tool renders your file with Mozilla's pdf.js, puts the annotation interaction layer from pdf-annotate.js (the MIT-licensed Submitty fork, battle-tested in a real grading platform) on top of each page, and stores every mark you make in the page. When you save, pdf-lib writes the annotation dictionaries into a copy of the original file.
Open → pdf.js renders each page → you highlight, strike, draw, type, or drop notes (each mark is captured in page coordinates at the current zoom) → Save converts every mark from screen coordinates to PDF user space, writes the matching annotation dict — quad points for highlights, an ink list for pen strokes, a default-appearance string plus contents for text — and attaches it to the right page's /Annots array → download. The document's own text, fonts, and images are never touched.
Take a US Letter page (612 × 792 points) with a contract clause worth flagging. At the viewer's 1.35× zoom you drag the highlighter across two lines of text, capturing rectangles at screen positions 188, 189 (335 × 12) and 72, 205 (431 × 12). On save, each rectangle converts from screen to PDF coordinates: line one becomes x 139.26 → 387.41, y 643.11 → 652.00; line two becomes x 53.33 → 372.59, y 631.26 → 640.15. Those two rectangles leave the exporter as one /Highlight annotation with 16 quad-point numbers — 2 quads, one per line — plus a yellow interior color of RGB (1, 1, 0) and a bounding rectangle of x 53.33–387.41, y 631.26–652.00.
Type "Check with legal" in a text box at 24-pixel size on the same page and it saves as a /FreeText annotation whose default-appearance string reads /Helv 17.78 Tf 0 0 0 rg — 24 screen pixels ÷ 1.35 zoom = 17.78 points of Helvetica in black. A sticky note carrying "Verify this clause before sending" becomes a /Text annotation whose /Contents is exactly that string, on whichever page you dropped it. Every one of those numbers comes straight out of the exporter's output, and Acrobat will let your reviewer recolor or delete any of them.
Yes. On download you get a copy of the original PDF with real annotation objects written into it — highlights as /Highlight markups with quad points, drawings as /Ink annotations, text as /FreeText, notes as /Text comments. They are not screenshots or flattened pixels, so other PDF software can show, hide, and edit them.
The ones people actually use: Adobe Acrobat and Reader, macOS Preview, Chrome and Edge's built-in viewers, Firefox, and Okular all render standard highlight, ink, free text, and note annotations. A handful of minimal mobile viewers ignore annotations — the text in the underlying document is always intact either way.
Usually, yes — because the output uses the PDF's own annotation types rather than burned-in pixels, Acrobat and Preview let you recolor, move, or delete each markup. If you need annotations permanently fused into the page, that's flattening, which is a different operation from annotating.
You can draw your signature with the pen tool and it saves as an ink annotation, but a drawn mark alone doesn't make a legally binding e-signature — that depends on intent, consent, and the audit trail your signing process provides. For contracts, use a dedicated signing workflow. This tool is for review and markup, and none of this is legal advice.
No. The PDF is rendered with pdf.js and re-saved with pdf-lib inside your browser; the page works offline once loaded. Your annotations live in the page until you download the annotated copy.
Annotating adds a layer on top — the original content stays fully intact underneath, which is right for review and collaboration. Redacting removes content from the file itself. If the goal is making information disappear, use a true redaction tool, not a highlighter.