Skip to content

Repository files navigation

PDF Editor

🔗 Live: pdf-editor-9gh.pages.dev

A free, client-side PDF editor that runs entirely in your browser. No backend, no account, no sign-up, no upload — your files never leave your machine. Anyone can use it, for free, forever.

Load a PDF, annotate it with text and images (Latin + Thai fonts supported), reorder/delete/duplicate/rotate pages or insert pages from another PDF, then export back to a real PDF with vector text and full-resolution images.

Features

  • Annotate — add text and images anywhere on a page
  • Page operations — delete, move, duplicate, rotate, or insert pages from another PDF
  • Fonts — Latin fonts plus Thai (Sarabun) fallback for Thai text
  • Export — writes a standard PDF with vector text and native-resolution images (not a flattened screenshot)
  • Re-openable export — optionally embed your edit history in the exported PDF so you can reopen it here later and keep editing
  • 100% client-side — nothing is uploaded anywhere; it works offline once loaded

Usage

Just open pdf-editor-9gh.pages.dev — no install, no account, no build.

Prefer to run it yourself? Clone the repo and open pdf-editor.html directly in a browser, or serve it locally:

python3 -m http.server 8000

Then open http://localhost:8000/pdf-editor.html.

Development

This is a no-build-step project: three plain files, loaded directly by the browser.

  • pdf-editor.html — the app: UI, canvas, export
  • page-ops.js — pure logic for page operations (delete/move/duplicate/rotate/insert)
  • geom.js — pure logic for annotation placement/coordinate math

There's no build tool or test runner. Two self-checking HTML pages serve as the test suite:

python3 -m http.server 8000
# open http://localhost:8000/page-ops.test.html
# open http://localhost:8000/geom.test.html

Run page-ops.test.html after changing page-ops.js or any page operation, and geom.test.html after changing geom.js or the export drawing path.

See CLAUDE.md for a full architecture walkthrough.

Tech

Built on PDF.js, Fabric.js, and pdf-lib (+ fontkit), all loaded from CDN.

License

MIT — see LICENSE.

About

A free, client-side PDF editor that runs entirely in your browser. No backend, no account, no upload — your files never leave your machine.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages