Skip to content

Repository files navigation

PDF Editor

Client-only PDF editor built with Vite, React, TypeScript, Tailwind CSS, shadcn/ui, PDF.js, and pdf-lib.

Features

  • Add Text, Images, Signatures, and a few other things to PDFs;
  • Move, rotate, and delete pages;
  • Merge multiple PDFs;
  • Full-document search with context;
  • View and edit all PDF metadata;
  • Compress PDFs (both lossless and lossy);
  • Keep multiple projects open at once - everything is stored locally;
  • ...other normal PDF editror featutes.

Development

Install dependencies:

bun install

Start the development server:

bun run dev
bun run dev:agpl # to include parts under AGPL 3.0

Run checks:

bun run lint
bun run test
bun run build
bun run build:agpl # to include parts under AGPL 3.0

PDF Compression

The project uses two PDF compression engines: QPDF and PyMuPDF (only under AGPL 3.0).

To override the URLs from which they're loaded, use VITE_QPDF_ENGINE_BASE_URL and VITE_PYMUPDF_ENGINE_BASE_URL environment variables, respectively.

Motivation

This project was started after I got tired of all PDF editors (that I knew at a time). Each of them was either missing some features, was paid, or had a very unattractive UI.

Initially, this project was supposed to only cover my use cases. But eventually I decided to stuff it with as much features as possible, while keeping it polished, cohesive, and (hopefully) intuitive to use.

Contributions, feature requests, and bug reports are welcome.

License

This project is MIT by default.

The optional PyMuPDF compression engine under src/features/pdf-compression/engines/pymupdf-agpl/ is AGPL-3.0-only. Builds made with bun run build:agpl include that engine integration and should be treated as AGPL-enabled.

About

Client-only PDF editor web app

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages