72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
# 📄 pdf2csv
|
||
|
||
Convertisseur de fichiers **PDF** en **CSV** basé sur [tabula-py](https://github.com/chezou/tabula-py) et [pandas](https://pandas.pydata.org/), empaqueté dans une image **Docker** légère.
|
||
|
||
Il est conçu pour traiter automatiquement les relevés bancaires PDF du crédit mutuel, en appliquant des opérations de nettoyage et de fusion avant de produire un fichier CSV unique.
|
||
|
||
Ce fichier est parfaitement compatible pour de l'import d'écritures via l'outil rapprochement assisté de [paheko](https://paheko.cloud/) outil de gestion d'association ou petites entreprises.
|
||
|
||
---
|
||
|
||
## 🚀 Fonctionnalités du script
|
||
|
||
Le script `convert.py` :
|
||
|
||
1. **Extraction**
|
||
- Utilise `tabula-py` pour extraire les tableaux depuis tous les fichiers PDF du dossier `/data`.
|
||
- Supporte les PDFs multi-pages.
|
||
|
||
2. **Nettoyage des données**
|
||
- Supprime les **3 premières lignes** de chaque extrait, jusqu’à la ligne contenant `SOLDE`.
|
||
- Supprime **toute ligne dont la première colonne contient `date`** (ligne d’entête répétée).
|
||
- Supprime **la ligne contenant `Total des mouvements` ainsi que toutes celles qui suivent**.
|
||
|
||
3. **Fusion des documents**
|
||
- Fusionne tous les CSV générés en **un seul fichier final**.
|
||
- Ajoute **en première ligne** du fichier final l’en-tête `date` (récupéré du premier tableau traité).
|
||
|
||
4. **Formatage des valeurs**
|
||
- Supprime tous les **points `.`** dans les deux dernières colonnes (pour nettoyer les séparateurs de milliers dans les montants).
|
||
|
||
5. **Export**
|
||
- Produit un **fichier CSV unique** propre, prêt à être utilisé dans un tableur ou un outil de gestion de budget.
|
||
|
||
---
|
||
|
||
## 📦 Construction de l'image
|
||
|
||
Clonez ce dépôt puis construisez l'image :
|
||
|
||
```bash
|
||
git clone https://gitea.example.org/monuser/pdf2csv.git
|
||
cd pdf2csv
|
||
docker build -t pdf2csv:latest .
|
||
```
|
||
|
||
## 📪 Lancer le docker et Convertir
|
||
|
||
- créer un dossier
|
||
```bash
|
||
mkdir mondossier
|
||
```
|
||
- copier les fichiers .pdf à convertir dans ce même dossier.
|
||
- en ligne de commande, se placer dans le dossier.
|
||
```bash
|
||
cd mondossier
|
||
```
|
||
- lancer la commande suivante pour lancer le docker, et convertir tous les fichiers .pdf
|
||
```bash
|
||
docker run --rm -v "$(pwd)":/data pdf2csv:latest
|
||
```
|
||
### Sortie attendue
|
||
|
||
Lors de la conversion, le script produit deux fichiers .csv par fichier .pdf dans le dossier.
|
||
|
||
```
|
||
*_brut.csv
|
||
*_final.csv
|
||
```
|
||
|
||
Puis tous les fichiers `_final.csv` sont concaténés en un seul fichier `fusion_total.csv`
|
||
|