Add Notes and Drawings

Draw arrows, circles, comment bubbles, and freeform sketches.

100% Client-Side • 100% Free

Annotate PDF with Notes, Shapes & Drawings

Draw freehand sketches, directional arrows, highlights, circles, and sticky notes directly in your browser with zero server uploads.

Drop your PDF here or click to browse

Supports all standard PDF documents. Fast, client-side, and private.

In-Depth Technical Guide•8 min read•2RUN Engineering Team
100% Client-Side • Zero Upload

The Authoritative Guide to Annotating PDF Documents In-Browser with Local Precision

⚡How to Annotate a PDF Document In-Browser

1

1. Upload Your PDF File

Drag and drop your document into the interactive canvas workspace, or select it directly from your local filesystem.

2

2. Select Your Annotation Tool

Choose from freehand pen, text callout, rectangle, circle, arrow line, or sticky note tools from the toolbar.

3

3. Customize Visual Properties

Adjust stroke colors, fill opacity, line thickness, and font sizes to create clear, visually distinct markup.

4

4. Draw and Place Markup on Pages

Click, drag, and draw directly onto the page preview. Move between pages using the visual page navigation drawer.

5

5. Download Annotated Document

Click 'Download Annotated PDF' to compile standard ISO 32000 appearance streams and save your marked-up document instantly.

Effective collaboration, editorial revision, academic grading, and document approval workflows depend fundamentally on clear, unambiguous markup annotations. Whether reviewing architectural blueprints, grading student theses, marking up contractual amendments, or leaving design feedback on marketing proofs, professionals require flexible annotation tools—including sticky notes, freehand ink drawings, text callouts, geometric shapes, and highlight markers—that adhere strictly to international document standards.

Under the ISO 32000 standard, annotations are defined in Section 12.5 as interactive objects attached to individual page dictionaries via the /Annots array. Creating compliant annotations requires precise synchronization between the visual browser viewport (rendered via HTML5 Canvas and WebGL) and the underlying PDF coordinate space (72 DPI Cartesian user units with bottom-left origins). Misalignments or poorly encoded appearance streams frequently cause annotations to render incorrectly or disappear entirely in standard desktop viewers like Adobe Acrobat or Apple Preview.

Our client-side Annotate PDF tool provides a responsive, high-precision visual canvas editor that operates entirely within your browser. With instant rendering powered by pdf.js and lossless PDF object injection via pdf-lib, you can annotate complex multi-page files with total confidence that your feedback will display identically across all devices—while guaranteeing 100% data privacy with zero server uploads.

Read the full technical guide

The ISO 32000 Annotation Architecture (/Annots and Subtypes)

In PDF architecture, annotations are not painted directly into the page content stream (/Contents). If they were, they would become permanent, uneditable raster or vector marks merged irreversibly with the underlying document artwork. Instead, ISO 32000 isolates annotations into a distinct overlay layer defined by the /Annots array on each /Page dictionary.

Each annotation is represented as an indirect dictionary containing critical attributes:

1. /Subtype: Identifies the functional type of annotation, such as /Text (sticky note icon), /FreeText (direct on-page text box), /Square (rectangle), /Circle (ellipse), /Line (connecting rule or arrow), /Ink (freehand drawing path), or /Highlight.

2. /Rect: Specifies the bounding rectangle [xMin yMin xMax yMax] within the page's coordinate system where the annotation resides.

3. /C: Defines the color array (typically RGB values normalized between 0.0 and 1.0).

4. /Contents: Holds the plain-text comment, author note, or textual payload associated with the markup.

5. /AP (Appearance Stream): Contains an independent XObject Form that defines the exact vector and raster instructions for rendering the annotation identically across all PDF viewing engines, regardless of their native annotation rendering quirks.

Coordinate Transformation: Mapping Screen Pixels to PDF User Units

The core engineering challenge in building an in-browser PDF annotation interface lies in mathematical coordinate space transformation. Web browsers position elements using screen pixels, where origin (0,0) is located at the top-left corner, and vertical coordinates increase downward. Conversely, PDF page geometry is standardized on a 72-point-per-inch Cartesian coordinate grid where origin (0,0) resides at the bottom-left corner, with vertical coordinates increasing upward.

To ensure pinpoint accuracy, our engine calculates transformation matrices taking into account multiple dynamic factors:

First, it extracts the target page's /CropBox and /MediaBox dimensions. If a page has a non-zero origin (e.g., [x: 36, y: 36, w: 612, h: 792]), all coordinate offsets must be anchored relative to the visible crop boundaries.

Second, it accounts for native page rotation (/Rotate key: 0, 90, 180, or 270 degrees). When a page is rotated 90 degrees clockwise, screen X-coordinates map to PDF Y-coordinates, requiring dynamic rotational matrix inversion.

Third, it scales coordinates against the display viewport zoom factor and device pixel ratio (window.devicePixelRatio). By computing exact floating-point transformations, drawn lines, text boxes, and shapes align perfectly with underlying typography down to a fraction of a point.

Appearance Streams (/AP) and Cross-Platform Compatibility

A pervasive issue with low-quality PDF annotators is the failure to generate valid Appearance Streams (/AP). When an annotation dictionary lacks an /AP entry, the PDF viewer is forced to dynamically synthesize its visual appearance based on basic keys like /Rect and /C. Because different software engines (Apple Preview, Chrome PDF Viewer, Adobe Acrobat, Foxit) implement vastly different fallback rendering heuristics, annotations often appear distorted, show incorrect font weights, or fail to display entirely.

Our client-side annotation generator constructs comprehensive Normal Appearance streams (/AP << /N objectRef >>) for every markup element. Text annotations include properly encoded font resources and text matrix operators (BT /Font size Tf x y Td (string) Tj ET), while shapes and freehand ink paths include precise vector stroke and fill operators (re, m, l, c, S, f). This ensures 100% visual consistency whether viewed in a mobile email client, a web browser tab, or professional print production software.

Vector Ink Paths vs. Shape Primitives in Construction Blueprints

In high-density engineering, architectural, and design workflows, clarity of vector detail is paramount. When marking up CAD exports or structural blueprints, freehand drawing tools must record intricate bezier splines with precision rather than degrading into jagged bitmaps.

Our engine utilizes an intelligent smoothing algorithm (Ramer-Douglas-Peucker path simplification) that captures pen gestures at high polling rates, filters micro-jitter, and compiles smooth bezier control points into the /Ink annotation dictionary. For geometric callouts, arrows, and dimension boxes, clean line end caps (/LE /OpenArrow) and dash patterns (/Border [0 0 1 [3 2]]) are injected directly, matching the exact conventions of professional drafting software.

Annotation Flattening vs. Interactive Collaboration Layers

Depending on your workflow, you may require annotations to remain fully interactive or you may need them permanently fused into the page. During collaborative review cycles, retaining interactive /Annots allows team members to select, edit, reply to, or delete comments in their preferred desktop software.

However, when publishing finalized documents, submitting architectural drawings to municipal authorities, or transmitting legal agreements, retaining interactive annotations can be risky. A recipient could accidentally move a note, delete a revision marker, or disable annotation visibility in their reader settings. Our tool supports both workflows: you can export the document with standard interactive ISO annotations, or utilize our companion Flatten PDF tool to bake every mark permanently into the page /Contents streams, guaranteeing immutable visual output.

Client-Side Execution: Absolute Privacy for Proprietary Reviews

Annotating intellectual property blueprints, draft contracts, medical records, or confidential balance sheets creates immense risk when using server-side SaaS converters. Storing draft comments and revision notes on third-party cloud servers exposes organizations to unauthorized data access, regulatory non-compliance, and data breach liabilities.

Our application runs entirely within your browser's local sandbox. The PDF file is rendered using pdfjs-dist within a dedicated Web Worker, interactive markup is captured via high-performance HTML5 Canvas overlays, and the resulting PDF objects are compiled directly into the binary stream via pdf-lib in browser RAM. No file bytes or comment strings are ever transmitted over the network, providing an ironclad privacy guarantee.

💡Pro Tips for Professional Document Annotation

  • •Use distinct color coding for different review roles: e.g., red for legal rejections, blue for editorial clarifications, and green for approved sections.
  • •When adding text comments, ensure the bounding box is sized generously to prevent text clipping when opened in viewers with different font metrics.
  • •Take advantage of high-DPI rendering by zooming in to 150% or 200% when adding precision annotations to technical blueprints or detailed schematics.
  • •If transmitting marked-up files to external clients who might use basic mobile readers, consider flattening the PDF to prevent annotations from being hidden.

🛡️Mathematical Matrix Inversion and XObject Form Construction

During annotation serialization, our engine translates viewport coordinates [xScreen, yScreen] into PDF points using the affine transformation matrix: [xPdf, yPdf] = [xScreen * (pdfWidth / canvasWidth), (canvasHeight - yScreen) * (pdfHeight / canvasHeight)]. For rotated pages, the coordinate vector is multiplied by the 2D rotation matrix R(theta). It then synthesizes an /XObject Form dictionary containing /BBox, /Matrix, and a stream of PDF drawing operators (e.g., '1 0 0 rg 2 w 10 10 100 50 re S'), linking this stream into the /AP << /N >> key of the newly created /Annot object.

Stack: WebAssembly • Multi-threaded Web Workers • HTML5 Canvas API

Privacy: Files never leave your device or touch a cloud buffer; analytics run only with your consent.

Why choose client-side browser tools?

When you compress an image or merge a PDF on 2run tools, the code executes inside your browser tab using WebAssembly and Web Workers. We never stream your bytes to a remote cloud server. Your private financial reports, personal photos, and legal agreements never leave your device.

Total PrivacyIn-Browser
Instant ProcessingFast RAM
Truly UnlimitedZero Limits

Frequently Asked Questions About Annotating PDFs

Will my annotations be visible in Adobe Acrobat and Apple Preview?▾

Yes. Because our tool generates standard ISO 32000 Appearance Streams (/AP), your annotations render identically across Adobe Acrobat, Apple Preview, Google Chrome, Foxit, and mobile PDF readers.

Can recipients edit or delete the annotations I add?▾

Yes, standard annotations stored in the /Annots array can be selected and modified by recipients using full PDF editors. To make them permanent and uneditable, use our Flatten PDF tool after annotating.

Does annotating a PDF degrade the original text or image quality?▾

No. Annotations exist as an independent vector overlay layer above the page content. The underlying text, vector graphics, and images remain untouched and at 100% original resolution.

Can I annotate multi-page documents?▾

Yes. Our interface supports seamless multi-page navigation. You can review and annotate documents containing dozens or hundreds of pages within a single session.

Is there any limit on the file size of PDFs I can annotate?▾

The only limit is your device's available browser memory (RAM). Documents up to several hundred megabytes process smoothly on modern desktop and laptop systems.

Are my confidential files uploaded to any external server?▾

Never. All document rendering, canvas drawing, and PDF object generation take place strictly within your local browser sandbox. No file data ever leaves your computer.

Sites Loading Under 0.8s
100/100 Lighthouse web engineering
Audit
Dev Arm for Design Agencies
White-label • Bilateral NDA
Partner
Technical SEO by Code
Deep Schema • Zero waste
Scale SEO
Custom Web Apps & SaaS
100% code ownership • Edge scale
Build
Turn Traffic into Sales
+34% sales lift • Fix bottlenecks
Audit