PDF Editor
Edit any PDF in your browser — add text, highlight, whiteout, sticky notes, freehand drawing, shapes, and images. Click to download. No uploads.
Your file never leaves your browser. All processing happens on your device.
1. Upload a PDF to start editing
Once your PDF is open, the toolbar above the page lets you add text, highlight, whiteout, sticky notes, shapes, freehand drawing, images, and more. Save / flatten options ship in the next release.
FAQ
- Can I change existing text in the PDF?Yes — for typed PDFs (~70% of real uploads). Pick the Edit Text tool, click a word, type the replacement, hit Enter, click Download. The saved file actually contains the new text — selectable and copyable in any reader. For scanned PDFs, photos of paper, or files whose fonts are not embedded, the tool falls back to a whiteout-and-overlay so the visual result is correct even when an in-place edit is not possible.
- What if my PDF was scanned?The capability banner will say "Scanned-only" and the Edit Text tool will be disabled. Run the OCR PDF tool first — it adds an invisible text layer on top of the page images, after which the editor recognises the text and Edit Text becomes available. (Layout reconstruction quality depends on the OCR result, which is good for typed scans, less reliable for handwriting or low-DPI images.)
- What if my PDF uses non-embedded fonts?The editor still lets you click and edit the run, but on save it falls back to whiteout-and-overlay rather than rewriting the content stream — non-embedded fonts mean the saved file would not be able to render the new characters reliably across readers. The toast after Download tells you when an edit was placed as overlay.
- Why did my replacement become an overlay even though my PDF is typed?Three known cases trigger overlay fallback: (1) the replacement is much longer than the original (would overflow the surrounding text run), (2) the original text is split across multiple operators inside the page's content stream (e.g. kerning offsets between characters), or (3) the text is right-to-left or contains line breaks. In all three cases the overlay still produces a correct-looking page; it just cannot be edited as a normal text run by another PDF tool.
- Can I edit tables?Simple cells with discrete text, yes — each cell is its own run and Edit Text replaces it cleanly. Complex tables (merged cells, multi-line cell text, header rows that visually align across columns) often have their text split across multiple content-stream operators, in which case the editor falls back to overlay for those cells. The visual result is still correct.
- When should I use Flatten on save?Use Flatten any time the annotations need to be permanent — redactions, whiteouts hiding sensitive content, or finalised review copies that recipients should not be able to reverse. Flatten rasterises every page's overlay into pixels embedded back onto the page; readers see them as part of the page image, not as removable annotation objects. Note: Flatten applies to overlay annotations and overlay-fallback Edit Text replacements; true in-place Edit Text replacements always survive Flatten because they live in the page's text stream, not the overlay.
- What is this NOT good for?Reflowing paragraphs (single-run-at-a-time only), exporting annotations as XFDF / FDF data, digitally signing with a real PKI signature (use Sign PDF), or interactive form fields (use Add Text Field / Add Checkbox tools). For pixel-perfect re-typesetting of complex layouts you still want Acrobat Pro.
- Are my files uploaded?No. The PDF is opened, rendered, edited, and saved entirely in your browser. Nothing is sent to a server. Close the tab and the file is gone.
- How do annotations align across zoom levels?Every annotation is stored in PDF points (1pt = 1/72 inch, bottom-left origin) — the same coordinate system pdf-lib uses to write the saved file. Zoom only changes how big the canvas is rendered on screen; the underlying coordinates do not change.
- How many undo steps are kept?Up to 40 history entries each direction. Larger histories slow the browser; if you need more, save the current state, close the file, and reopen.