PDF Editor — Annotate & Draw on PDFs
Annotate PDFs in your browser — highlight, draw freehand, add text notes, rectangles, and ellipses. Edits bake into the PDF; nothing is uploaded.
How to Use
Annotate any PDF in four steps:
- Upload your PDF — Drag and drop the document onto the upload area or click to browse. The tool parses the file locally with PDF.js and renders the first page to an editing canvas. Nothing is sent to a server.
- Pick an annotation tool — The left rail offers five tools. Highlight draws a translucent marker box over text. Draw records a freehand pen stroke. Text note places typed text where you click. Shape adds a rectangle or ellipse outline. Eraser removes any annotation you placed by clicking or dragging over it. Choose a color and stroke width before drawing.
- Mark up the page — Drag on the page to create highlights and shapes, sketch freehand strokes, or click to drop a text note. Navigate to other pages with the thumbnail strip below the canvas — every page keeps its own annotation set and its own undo history, so Undo only affects the page you are viewing.
- Download the result — Click Download annotated PDF. The tool bakes every annotation into the page content stream as vector graphics using pdf-lib and produces a new PDF file named after your original with an
-annotatedsuffix.
The entire workflow runs in your browser using PDF.js for page rendering and pdf-lib for writing annotations. No files are uploaded to any server.
About This Tool
This PDF editor adds freehand and geometric annotations to PDF documents by drawing them directly into the page content stream. It uses two complementary libraries: pdfjs-dist renders each page to an HTML canvas so you can see exactly where your markup will land, while pdf-lib translates the annotation model into vector drawing operations — filled rectangles, stroked shapes, SVG paths, and embedded Helvetica text — inside the actual PDF file. Because annotations are written as vector graphics rather than raster images, they stay sharp at every zoom level and add only a few kilobytes to the file.
Display space vs. PDF user space
PDF pages use a bottom-left origin coordinate system where Y increases upward, while browser canvases use a top-left origin where Y increases downward. Every annotation you draw is recorded in display space — the same coordinates as the canvas overlay — then converted when the PDF is saved: pdfY = pageHeight - displayY - height. Storing annotations in PDF points rather than screen pixels means the markup stays anchored correctly regardless of canvas resolution or zoom. Pages with a /Rotate entry (90, 180, or 270 degrees) get an additional axis mapping so annotations land where you drew them even on rotated pages.
Baked-in annotations vs. PDF annotation objects
Desktop editors like Acrobat store markups as annotation objects — separate metadata layered over the page that can be moved, edited, or deleted later. This tool takes the simpler, more robust route: it bakes each annotation into the page's content stream, the same way ink behaves on paper. The result is a flattened annotation that renders identically in every PDF viewer, prints reliably, and cannot be accidentally moved or stripped. The trade-off is that saved annotations are permanent — so the tool provides per-page undo and an eraser for corrections before you download.
How each annotation type is written
Highlights become page.drawRectangle() calls at roughly 30% opacity so the underlying text stays readable. Rectangles and ellipses map to drawRectangle and drawEllipse with border-only styling. Freehand strokes are simplified with the Douglas-Peucker algorithm to remove pointer jitter and shrink the file, then emitted as SVG path strings consumed by page.drawSvgPath() with round line caps. Text notes use an embedded Helvetica font via page.drawText(), with the click position converted from text-box top to glyph baseline.
Privacy and offline behavior
All processing happens client-side in your browser — the PDF, your annotations, and the resulting file never travel over the network. That makes the tool suitable for marking up contracts, medical records, financial statements, and other sensitive documents. To sign the document after annotating it, use PDF Sign. To add repeating labels like CONFIDENTIAL or DRAFT, try PDF Add Watermark or PDF Add Stamps. To fill interactive form fields instead of drawing on the page, use PDF Form Filler.
Why Use This Tool
Annotating PDFs is a daily workflow for students, reviewers, lawyers, and anyone who reads documents on screen. Here are the scenarios where this tool earns its keep:
- Document review and proofreading — Highlight passages that need attention, circle problem areas with the ellipse tool, and drop text notes with suggested edits. The per-page undo stack makes it easy to experiment without ruining earlier markup.
- Studying and research — Mark key paragraphs in lecture slides, journal articles, and ebooks. The translucent highlighter keeps text legible underneath, and notes let you jot down page-level summaries for later review.
- Markup on scanned documents — Scanned PDFs have no text layer to annotate with traditional sticky-note tools. Because this editor draws directly on the page canvas, it works identically on scans, faxes, and image-only documents.
- Redaction-adjacent marking — Draw opaque rectangles over sensitive regions for a visual review pass before applying a true redaction tool. For permanent content removal, pair with PDF Sanitize.
- Signing-adjacent workflows — Sketch arrows pointing to signature lines, add initials in margins, or flag pages that need a signature, then complete the document with PDF Sign.
- Privacy-sensitive environments — Legal teams, journalists, and healthcare staff can annotate confidential documents without uploading them to cloud services. The file never leaves the device, so the tool also works fully offline once the page has loaded.
Processing PDFs locally eliminates the privacy and latency costs of server-based annotation tools. Your document and your markups stay on your device from upload to download. For related operations, explore PDF Remove Annotations and PDF Flatten.