Local · Private · No uploads — a fully client-side PDF toolkit that runs entirely in your browser.
PDF4YOU currently offers three tools, accessible via a tab-based interface:
| Tool | Description |
|---|---|
| Image → PDF | Combine multiple images (JPG, PNG, WEBP) into a single PDF. Drag to reorder pages before converting. |
| PDF → Images | Extract every page of a PDF as a high-resolution PNG. Download individually or all at once in a zip file. |
| Scan → PDF | Use your device camera to scan physical documents page by page and export as a PDF. |
All processing happens in the browser — your files are never sent to any server.
There is upload limit & file_count limit to prevent crashing of browser or denial of service on the client.
- PdfToImages: 100 MB per PDF limit and 200 pages max.
- ImagesToPdf: 20 MB per image and 100 images max.
- ScanToPdf: 100 max frame count(images).
You can change limits by running the build locally.
- React 18 — UI framework
- Vite — build tooling & dev server
- pdf-lib — PDF creation and manipulation
- pdfjs-dist — PDF rendering to canvas (loaded on demand)
- Node.js 18+
- npm or yarn
git clone https://github.com/luckisalive/pdf-tool.git
cd pdf4you
npm installnpm run devOpen http://localhost:5173 in your browser.
npm run buildOutput will be in the dist/ directory — ready to deploy to any static host (Vercel, Netlify, GitHub Pages, etc.).
public/
├── favicon.svg
src/
├── components/
│ ├── ImagesToPdf.jsx
│ ├── PdfToImages.jsx
│ └── ScanToPdf.jsx
├── App.css
├── App.jsx
├── index.css
└── main.jsx
.gitignore
README.md
LICENSE.md
eslint.config.js
index.html
package-lock.json
package.json
vite.config.js
PDF4YOU is designed with privacy first:
- No file uploads — all conversion happens locally via browser APIs
- No analytics or tracking
- No backend — the app is entirely static
- Files never leave your device
Requires a modern browser with support for:
- File API
- Canvas API
- MediaDevices API (Scan to PDF only — requires HTTPS)
Tested on Chrome, Firefox, Edge, and Safari (latest versions).