# NMPDF
Application desktop de manipulation de PDF avec SvelteKit + Tauri.
Fonctionnalites
- Fusion de plusieurs PDF en un seul fichier
- Selection de pages d un PDF unique pour creer un nouveau PDF
- Rotation par page avant export en split (90 degre gauche/droite)
- Reorganisation des fichiers (mode fusion)
- Reorganisation des pages selectionnees (mode split)
- Miniatures des pages (apercu)
Stack technique
- Frontend: SvelteKit 2, Svelte 5, TypeScript, Tailwind CSS
- Backend desktop: Tauri 2 (Rust)
- Traitement PDF: lopdf
- Rendu miniatures: pdfjs-dist
Prerequis
Installe les outils suivants:
- Node.js 20+
- npm
- Rust (stable)
- Tauri prerequisites pour ton OS
Pour Windows, verifie notamment:
- Microsoft C++ Build Tools
- WebView2 Runtime
Installation
npm install
Lancer en developpement
npm run tauri dev
Alternative (frontend seul):
npm run dev
Build production
Build frontend:
npm run build
Build application desktop Tauri:
npm run tauri build
Qualite de code
Formatter tout le projet:
npm run format
Verifier format + lint:
npm run lint
Verifier Svelte/TypeScript:
npm run check
Workflow recommande avant push:
npm run format
npm run lint
npm run check
Structure du projet
src/
routes/
+page.svelte # Interface principale
src-tauri/
src/lib.rs # Commandes Rust (merge/split/page_count)
tauri.conf.json # Configuration app desktop
Commandes backend exposees (Tauri)
- merge_pdfs(input_paths, output_path)
- split_pdf(input_path, selected_pages, output_path)
- get_pdf_page_count(input_path)
Notes
- Le split ne fonctionne que lorsqu un seul PDF est charge
- Les rotations sont normalisees en backend (0, 90, 180, 270)
- Les miniatures peuvent prendre un peu de temps sur des PDF volumineux
Licence
Projet personnel.