Skip to content
Anivia1337Public

About

Combine, reorder, rotate, and annotate PDFs entirely in your browser — nothing is uploaded, all processing is client-side.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

PDF Editor

Combine, reorder, rotate, and annotate PDFs entirely in your browser. Nothing is uploaded — every file is processed client-side and never leaves your device.

Live: https://anivia.ch/pdf

Features

  • Merge — add several PDFs and combine them into one
  • Reorder — drag pages into any order
  • Rotate — a page, all pages, left/right; reverse page order
  • Duplicate / delete pages, insert blank pages
  • Annotate — draw and add text with adjustable colour, font size, stroke width
  • Undo, multi-select, select all
  • Light/dark theme, keyboard shortcuts

Scanning

Scan pulls pages straight from a network scanner (AirScan/eSCL – most HP, Canon, Epson and Brother devices since ~2015). Browsers cannot reach devices in your network, so a small helper does it on your computer:

  • Windows: scan.ps1, started with one line in Win+R (shown in the Scan dialog; -ExecutionPolicy Bypass, so it also runs where the policy is AllSigned and "Run with PowerShell" refuses unsigned scripts). No install. Network scanners Windows connected via AirScan are scanned directly over eSCL (flatbed and feeder); other scanners Windows knows (vendor driver, USB) go through WIA, flatbed only – WIA's script interface returns just the first sheet from a feeder.
  • macOS / Linux (or Windows with Python):
python3 scan.py                          # finds scanners via mDNS
python3 scan.py --scanner 192.168.1.50   # or name one directly

Besides network scanners it also offers every scanner the system already knows: on Windows everything set up in Windows (WIA, via PowerShell – e.g. USB scanners), on Linux everything SANE knows (scanimage, package sane-utils). Network devices that both would list again are left out.

For feeders that only read one side there is manual duplex: scan the fronts, put the stack back with the back sides up (last sheet on top), scan the backs – the pages are interleaved automatically (the backs come out in reverse) and blank backs can be left out.

It listens on 127.0.0.1:7710, answers only to this site, and hands the pages to the browser as JPEGs. Standard library only.

Privacy

No server, no upload, no tracking. A strict Content-Security-Policy (default-src 'none') blocks all external requests — the page can only talk to itself. Your PDFs are opened, edited, and saved locally in the browser.

Tech

Static HTML/CSS/JS, no build step. Rendering via pdf.js, writing via pdf-lib — both vendored in vendor/.

Run locally

Serve the folder under the path /pdf/ (assets use absolute /pdf/... paths):

python3 -m http.server 8000   # then open http://localhost:8000/pdf/

Or drop it in a webroot at /pdf. .htaccess sets the CSP and cache headers for Apache.

About

Combine, reorder, rotate, and annotate PDFs entirely in your browser — nothing is uploaded, all processing is client-side.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages