Skip to content
DevToolKit

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.

pdf

Drop your PDF here, or click to browse

Files are processed entirely in your browser — never uploaded

Processed locally
Processed locally
Was this tool helpful?

How to Use

Annotate any PDF in four steps:

  1. 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.
  2. 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.
  3. 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.
  4. 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 -annotated suffix.

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.

FAQ

How do I annotate a PDF online?
Upload your PDF, pick a tool from the left panel — highlighter, pen, text note, shape, or eraser — then draw or click directly on the page. When you're done, click Download annotated PDF to save a copy with your markups baked in.
What annotation types does this PDF editor support?
Five tools: a translucent highlighter for marking text, a freehand pen for drawing and sketching, text notes in three sizes, rectangle and ellipse shapes, and an eraser that removes any annotation you've placed.
Are the annotations permanent?
Yes. Annotations are baked into the page content stream as vector graphics using pdf-lib — they are flattened drawings, not removable annotation objects. Use the per-page Undo button or eraser to correct mistakes before downloading.
Does it work on multi-page and rotated PDFs?
Yes. You can annotate any page — navigate with the thumbnail strip. Annotations are stored per page with an independent undo stack, and the coordinate mapping accounts for pages rotated 90, 180, or 270 degrees.
Is my PDF uploaded to a server?
No. Rendering uses PDF.js and all editing uses pdf-lib, both running entirely in your browser. Your document never leaves your device, making the tool safe for contracts, financial records, and confidential files.