A secure, privacy‑first PDF redaction editor. All processing happens locally in your browser — no files are uploaded and no data ever leaves your device.
Translations: 中文 (Simplified Chinese) • Français
- 100% local processing: runs entirely in the browser
- No uploads, no network requests, no server storage
- In‑memory processing only; nothing persists after refresh
- Metadata cleanup on export to reduce residual traces
- Visual selection: drag to mark sensitive areas
- Two built‑in methods:
- Canvas render: converts pages to images; strongest, unrecoverable
- Pixelation: mosaics marked areas while keeping page layout
- Real‑time preview, undo/redo, and color‑coded marks
- English (default), 简体中文, Français (UI language selector included)
- Responsive layout for desktop and mobile
- Thumbnail navigation, zoom controls, fit‑to‑width
- Keyboard shortcuts for fast editing
- Node.js 18+
- npm, yarn, or pnpm
- Clone
git clone https://github.com/jyxwant/secure-pdf-editor.git cd secure-pdf-editor - Install
npm install
- Develop
npm run dev
- Open
http://localhost:5173
npm run build
npm run preview- Upload a PDF (max 50MB; password‑protected files not supported)
- Drag to mark sensitive areas (text, images, regions)
- Preview the effect
- Choose a method (Canvas render or Pixelation)
- Download the secured PDF
Keyboard shortcuts:
| Shortcut | Action |
|---|---|
← → |
Navigate pages |
+ - |
Zoom in / out |
0 |
Reset zoom |
F |
Fit to width |
Space |
Toggle pan mode |
Delete |
Remove selected mark |
Ctrl+Z Ctrl+Y |
Undo / Redo |
Esc |
Cancel current action |
- React 18 + TypeScript
- Vite 6 + Tailwind CSS
- PDF.js for rendering
- pdf-lib for PDF generation/manipulation
- i18next + react‑i18next (+ browser language detector)
src/
├── components/
│ ├── pdf/ # FileUploader, PDFViewer, Toolbar, ThumbnailView
│ ├── LanguageSelector.tsx
│ └── ...
├── hooks/ # usePDFProcessor (rendering + redaction)
├── i18n/ # i18n resources
├── lib/ # utils
└── workers/ # pdf.worker
End‑to‑end tests use Playwright.
npm run test # headless
npm run test:ui # with UI- No network requests; all work is local in the browser
- Export cleans common metadata fields
- Canvas render produces rasterized pages; sensitive content is not recoverable
- Pixelation masks areas visually while keeping overall layout
- Issues: https://github.com/jyxwant/secure-pdf-editor/issues
- Repo: https://github.com/jyxwant/secure-pdf-editor
- 中文(简体): readme/README.zh-CN.md
- Français: readme/README.fr.md
MIT License — see LICENSE for details.
If this project helps you, a star is appreciated!
Made with ❤️ for privacy and security