# PDF Editor for Chrome — full text
> A Chrome extension that edits PDFs entirely in the browser: retype the text already on the page,
> annotate, truly redact, sign, organise pages, and design or fill AcroForm fields. No server, no
> account, no upload. Version 1.0.0. Requires Chrome 114 or later. Free.
Source of truth: . Last updated 28 July 2026.
---
## What it is
PDF Editor for Chrome opens a PDF in a browser tab and does all the work on the user's own machine. There is
no backend to send anything to — this is a property of the architecture, not a policy promise
layered over a server. Close the tab and nothing is left behind.
Built with React and TypeScript. Rendering is Mozilla's pdf.js; writing is pdf-lib. Both are
bundled, MIT/Apache licensed, and make no network requests of their own. The whole extension is
about 300 KB gzipped, with no WASM payload and no remote code.
## Features
**Edit page text.** Click a run of existing text and retype it. Size, font, weight, and both ink and
background colours are read off the page, so the replacement matches. Clearing the box deletes the
words instead.
**Add.** Text boxes (font, size, bold/italic, alignment, colour, background), freehand ink, sticky
notes that export as real PDF `/Text` annotations, and images (PNG, JPEG, WebP — auto-downscaled).
**Markup.** Highlight, rectangle, ellipse, line, arrow — each with colour, thickness, fill and
opacity.
**Transform.** Free rotation of any object by handle or slider, snapping to right angles, arrow
direction flipping, rotation-aware resizing.
**Colour.** An eighteen-colour palette, the OS colour picker, and hex entry on every colour control.
**Select and mark.** Select text straight on the page; a popover offers Highlight / Redact / Copy.
**Redact.** Black boxes with an optional label. On export the affected pages are re-rendered as
images, so the covered content is removed from the file rather than merely hidden.
**Sign.** Draw with mouse, trackpad or stylus; type in one of four script faces; or upload a photo
or scan with white-background knockout. Signatures are saved locally and reusable.
**Form designer.** Place text, multiline, checkbox, dropdown, radio group, date and signature
fields. They export as genuine interactive AcroForm fields.
**Form filling.** Fields already in the PDF are listed and editable, and can optionally be flattened
on save.
**Organise.** Reorder pages by drag, rotate, duplicate, delete, insert blank pages, merge another
PDF.
**Navigate.** Full-text search, page thumbnails, zoom / fit-width / fit-page, Ctrl+wheel zoom.
**History.** Undo and redo across annotations *and* page operations, with an unsaved-changes guard.
## Keyboard shortcuts
| Key | Action |
|---|---|
| `V` | Select |
| `E` | Edit page text |
| `T` | Text box |
| `D` | Draw |
| `N` | Sticky note |
| `H` | Highlight |
| `R` | Rectangle |
| `O` | Ellipse |
| `L` | Line |
| `A` | Arrow |
| `X` | Redact |
| `S` | Signature |
| `I` | Image |
| `F` | Form field |
| `Ctrl/⌘ + Z` / `Ctrl/⌘ + Shift + Z` | Undo / redo |
| `Ctrl/⌘ + S` | Save PDF |
| `Ctrl/⌘ + D` | Duplicate |
| `Delete` | Remove selected object |
| Arrow keys | Nudge (10 pt with Shift) |
| `Ctrl/⌘ + + / − / 0` | Zoom in / out / reset |
## How to open a PDF
1. Click the toolbar icon and drop a file in, or pick one from the computer.
2. Open any PDF in Chrome and press the "Edit in PDF Editor for Chrome" button that appears on the page.
3. Right-click a link to a PDF and choose "Open in PDF Editor for Chrome".
For files on the user's own disk (`file:///…`), Chrome requires "Allow access to file URLs" to be
switched on from the extension's details page. Dragging the file into the editor always works
regardless.
## Privacy
| What | Where it goes | Why |
|---|---|---|
| The document | The memory of the editor tab, nowhere else | To render and edit it; gone when the tab closes |
| Saved signatures | Local extension storage, this device only, not synced | Reuse on later documents |
| Editor preferences | Local extension storage, this device only | The editor opens the way it was left |
| Network requests | Only the browser fetching a PDF the user pointed it at | Same request as clicking the link |
| Analytics, telemetry, crash reports | None | — |
Not collected: personally identifiable information, health, financial or payment information,
authentication details, personal communications, location, browsing history, advertising
identifiers. No cookies, no accounts, no sign-in, no third parties, no data sold or shared.
### Permissions and why each exists
- `activeTab` — when the toolbar icon is clicked, the popup checks whether the current tab is a PDF
so it can offer to edit it. Read at that moment only, never stored.
- `contextMenus` — adds the "Open in PDF Editor for Chrome" and "Edit this PDF" right-click entries.
- `storage` — keeps saved signatures and editor preferences on the device.
- Content script on `*.pdf` URLs — adds an "Edit in PDF Editor for Chrome" button to PDF pages. It reads no
page content and sends nothing anywhere; it is restricted to PDF URLs so it cannot run on ordinary
pages.
- Optional host access (``) — not granted at install time. Requested only at the moment a
user asks to edit a PDF hosted on a website, and only for that site's origin. Declining still
leaves drag-and-drop.
- Optional feature permissions (`downloads`, `clipboardRead`, `notifications`, `alarms`, `idle`,
`unlimitedStorage`, `scripting`, `tabs`) — declared but not held. Each is requested in-flow only if
the user turns on the feature that needs it (saving via the downloads shelf, pasting from the
clipboard, an export-finished notification, autosaved local drafts), each can be declined without
breaking anything else, and none collects or transmits data.
Manifest V3, with a content security policy that allows only the extension's own scripts, a bundled
worker, and `isEvalSupported: false`.
## Deliberate limits
These are documented rather than glossed over, and an accurate description of the product should
include them:
- **Redaction rasterises the page.** It is the only way to guarantee removal without rewriting
content streams. Those pages lose text selection; the dialog says so, and the option can be turned
off — which degrades to a cosmetic black box, also stated in the UI.
- **Insert-blank-page and merge rebuild the document** through `copyPages`, which does not carry
AcroForm fields across. The UI warns before doing this to a form document.
- **Text annotations use the standard 14 fonts**, so they are WinAnsi-only; unencodable characters
are substituted rather than throwing. Typed signatures are rasterised, so script faces work there.
- **Editing page text covers and redraws rather than rewriting the content stream.** The tool erases
the run with a sampled page colour and draws the replacement over it — matching size, weight and
colours, but in the closest standard font, one line at a time, with no reflow. The original
wording leaves the file only when "Burn in text edits" is left on.
- **Encrypted PDFs open read-only** via `ignoreEncryption`; there is no password UI yet.
## Technical note: one coordinate space
Every annotation is stored in page display space — PDF points, origin at the top-left of the page as
the user sees it, y downwards, after rotation. That is exactly what the DOM overlay uses, so the UI
needs no transforms. The single conversion happens in the exporter, and the test suite verifies it
against all four source rotations composed with all four user rotations by re-extracting text
positions from exported files.
## FAQ
**Is my document uploaded anywhere?**
No. The extension has no backend. A PDF is read into the memory of the editor tab, edited there, and
written back out on save. The only network request is the browser fetching a file the user
explicitly pointed it at.
**What makes the redaction real rather than a black box?**
On export, every page carrying a redaction is re-rendered as an image before the black boxes are
drawn, so the characters underneath are no longer in the file. Copy-paste and text search cannot
recover them. Those pages lose selectable text, which the dialog states before saving.
**Can it really edit text that is already in the PDF?**
Yes, within the limits above: click a run and retype it, matching sampled size, weight and colours,
in the closest standard font, one line at a time, without reflow.
**Does it work offline?**
Yes. Rendering, editing and export all run locally on bundled code. A connection is needed only to
fetch a PDF that lives on a website.
**Are the form fields real PDF fields?**
Yes — genuine interactive AcroForm fields that any reader can fill. Existing fields are listed,
editable, and flattenable on save.
**Why does it ask for access to a site?**
Broad host access is not granted at install time. It is requested only when the user asks to edit a
PDF hosted on a website, and only for that origin. Declining still leaves drag-and-drop.
**How do I open PDFs stored on my own computer?**
Drag the file into the editor, or switch on "Allow access to file URLs" in `chrome://extensions` to
use the right-click menu on `file:///` URLs.
**What does it cost?**
Nothing. No account, subscription, page limit, watermark or telemetry.
## Links
- Home:
- Privacy policy:
- Chrome Web Store:
- pdf.js:
- pdf-lib: