nathan-manip-pdf Svelte Themes

Nathan Manip Pdf

Lightweight, privacy-first PDF tool (Tauri + Svelte)

# 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.

Top categories

Loading Svelte Themes