Un'app desktop multipiattaforma per convertire PDF in formato DSA-friendly, completamente offline.
- ✅ 100% Offline: Nessuna connessione internet richiesta
- ✅ Multipiattaforma: Windows, macOS, Linux
- ✅ OCR Locale: Tesseract integrato per PDF scannerizzati
- ✅ Profili DSA: Font e stili ottimizzati per la leggibilità
- ✅ Multi-formato: Export in DOCX, PDF, ePub
- ✅ Batch Processing: Elaborazione multipla di documenti
- ✅ Drag & Drop: Interfaccia intuitiva
- DSA Base: Profilo standard con font Atkinson Hyperlegible
- Alta Leggibilità: Ottimizzato per massima leggibilità
- Pastello: Colori tenui e rilassanti
- OpenDyslexic: Font specifico per dislessia
- Electron 30+: Framework desktop
- React 18: Interfaccia utente
- TypeScript: Type safety
- TailwindCSS: Styling moderno
- Python 3.11: Elaborazione documenti
- FastAPI: API REST
- Tesseract: OCR locale
- Poppler: Conversione PDF→immagini
- WeasyPrint: Generazione PDF
- python-docx: Export Word
- ebooklib: Export ePub
- Node.js 18+
- Python 3.11+
- Git
-
Clona il repository
git clone <repository-url> cd pdf-dsa-converter
-
Installa dipendenze frontend
npm install
-
Installa dipendenze backend
cd backend pip install -r requirements.txt cd ..
-
Scarica binari (Tesseract, Poppler, Font)
./scripts/download-binaries.sh
-
Avvia in modalità sviluppo
npm run dev
# Build completo
npm run build
# Distribuzione per piattaforma specifica
npm run dist:win # Windows
npm run dist:mac # macOS
npm run dist:linux # Linux- Avvia l'applicazione
- Seleziona o trascina i PDF da convertire
- Scegli il profilo DSA più adatto
- Seleziona i formati di output (DOCX, PDF, ePub)
- Scegli la directory di output
- Avvia la conversione
L'app include un'API REST per l'elaborazione:
POST /analyze-pdf: Analizza un PDFPOST /process-pdf: Avvia l'elaborazioneGET /job-status/{job_id}: Stato di un jobGET /dsa-profiles: Profili DSA disponibili
pdf-dsa-converter/
├── src/ # Frontend Electron
│ ├── components/ # Componenti React
│ ├── types/ # TypeScript types
│ └── utils/ # Utilities
├── backend/ # Backend Python
│ ├── src/ # Codice sorgente
│ └── requirements.txt # Dipendenze Python
├── binaries/ # Binari esterni
│ ├── tesseract/ # Tesseract OCR
│ └── poppler/ # Poppler utils
├── assets/ # Risorse
│ ├── fonts/ # Font DSA
│ └── templates/ # Template export
└── scripts/ # Script di setup
Modifica src/utils/dsaProfiles.ts per aggiungere nuovi profili:
{
id: 'custom',
name: 'Profilo Personalizzato',
description: 'Descrizione del profilo',
font: 'Font Name',
fontSize: 16,
lineHeight: 1.6,
maxWidth: 68,
textAlign: 'left',
backgroundColor: '#F7F3E8',
textColor: '#111111',
paragraphSpacing: 8,
linkColor: '#2563EB'
}Estendi ExportManager in backend/src/export_manager.py per aggiungere nuovi formati.
- Verifica che Tesseract sia installato correttamente
- Controlla che i traineddata (ita, eng) siano presenti
- Assicurati che Poppler sia configurato per pdf2image
- Verifica che i font siano nella directory
assets/fonts/ - Controlla i percorsi nei file CSS
- Assicurati che tutte le dipendenze siano installate
- Verifica che i binari siano presenti in
binaries/
MIT License - Vedi file LICENSE per dettagli.
I contributi sono benvenuti! Per favore:
- Fork del repository
- Crea un branch per la feature
- Commit delle modifiche
- Push al branch
- Apri una Pull Request
Per problemi o domande:
- Apri una Issue su GitHub
- Contatta il team di sviluppo
PDF DSA Converter - Rendere i documenti accessibili a tutti.