Skip to content

MouvementSol/annuairePapier

Repository files navigation

Génération d'annuaire papier

Ce projet a pour but la génération d'annuaires papier A4 recto-verso au format PDF à partir de données au format CSV provenant par exemple d'une exportation par Dolibarr. Il est constitué de :

  • fichiers annuaire vierges au format Scribus (.sla)
  • script python exécuté par Scribus pour remplir le document
  • fichier de paramétrage au format CSV permettant de personnaliser le document
  • images à importer dans le document
  • données au format CSV

Résultat

Résultat Recto Eléments paramétrables :

A. les trois couleurs utilisées dans le document
B. le texte du bandeau
C. le logo principal : fichier logo.png
D. le QRcode : fichier qrcode.png
E. adresse internet de l'annuaire
F. le petit logo : fichier petitLogo.png
G. adresse de l'association
H. les adresses des professionnels : fichier demandé à l'exécution du script
I. les adresses des bureaux de changes sont les professionnels dont le champ Bureau de change est à 1
J. Images pour remplir les espaces sans adresse : fichiers image1.png, image2.png, image3.png, image4.png

Une fois plié en huit, la partie 1 se retrouve devant et la partie 2 derrière. En dépliant une fois, la partie 3 apparait en premier et contient les deux premières colonnes de texte. La suite est au verso et la partie 4 contient les quatre dernières colonnes.

Rôle des fichiers

Données

C'est un fichier CSV avec la virgule (,) comme séparateur et les guillements (") comme délimiteurs facultatifs de champs Les colonnes peuvent être dans le désordre, le script les reconnaît en cherchant les mots en gras (non sensible à la casse) :

  • nom du professionnel
  • Adresse
  • Code postal
  • Ville
  • EMail
  • Téléphone professionnel
  • Domaine d'activité Principal (catégorie)
  • Description de l'activité de l'entreprise
  • Latitude
  • Longitude
  • Bureau de change (contient 0 ou 1)

La colonne Domaine (ou catégorie) contient un numéro qui doit se trouver avec sa description dans le fichier categorie.csv Son contenu est le suivant :

"Catégorie","Numéro"
"...", <numéro>
...

Sélection des professionnels

Lorsque le nombre de professionnels dépasse 150, une sélection doit être faite et plusieurs annuaires générés en fonction de zones géographiques. Cette sélection peut se faire par les codes postaux ou par les coordonnées : latitude, longitude. Le paramètre filtreGeo du fichier parametres.csv précise cette sélection

Codes postaux

Si les valeurs de la ligne commençant par "filtreGeo" sont des codes postaux (nombres sans décimales) séparés par des virgules (,) seuls les professionnels avec ces codes seront importés. Si le premier de ces codes est le mot "sauf", seuls les professionnels n'ayant pas ces codes seront importés.

Coordonnées

Si les valeurs sont des nombres décimaux avec le point comme séparateur décimal, ils sont interprétés comme des paires latitude, longitude et seuls les professionnels à l'intérieur du polygone délimités par les points seront importés. Par exemple, la ligne suivante dessine un polygone autour de Strasbourg :

"filtreGeo", 48.647043,7.846305,  48.647043,7.79, 48.606757,7.759547, 48.604764,7.688182, 48.560268,7.689072, 48.539095,7.753256, 48.493268,7.747884, 48.493268,7.80

Polygone Strasbourg

Et cette ligne délimite tout le département sauf Strasbourg

"filtreGeo", 48.647043,7.846305,  48.647043,7.79, 48.606757,7.759547, 48.604764,7.688182, 48.560268,7.689072, 48.539095,7.753256, 48.493268,7.747884, 48.493268,7.80, 48.64,7.846305, 49.1,8.42, 48.101784,8.42, 48.101784,6.83, 49.1,6.83, 49.1,8.41

Polygone Strasbourg

Tests

Le script lireDonnees.py permet de tester un fichier de données et son paramétrage en ligne de commande, il compte le nombre de professionnels filtrés en utilisant le script importerPros.py

Paramètrage

Le fichier CSV parametres.csv permet de paramétrer :

  • les 3 couleurs utilisées dans le document en donnant leurs composantes quadrichromiques (Cyan, Magenta, Jaune, Noir).
    • couleurBandeau
    • couleurSombre
    • couleurTitre
  • txtBandeau : le texte du bandeau
  • txtUrlAnnuaire : l'URL sous le QRcode
  • txtInfoAsso : adresse de l'association
  • filtreGeo : sélection en fonction des codes postaux ou d'un polygone géographique

Fichiers annuaire vierges

les fichiers A4-150.sla et A4-140.sla ne contiennent pas d'adresses de professionnels, les images et quelques informations présentes seront remplacées à l'exécution du script. Le premier fichier génère un annuaire de taille A4 pouvant contenir environ 150 adresses de professionnels. Dans le second, les adresses sont écrites un peu plus gros. Ils NE DOIVENT PAS ÊTRE MODIFIÉS. Sauvegardez-les sous un autre nom si vous souhaitez enregistrer un annuaire rempli au format Scribus.

Génération des annuaires

Pré requis

  1. Le logiciel Scribus doit être installé (version utilisée pour ce projet : 1.4.7)
  2. Quelques symboles de la police Fontawesome sont utilisés

Génération

  1. Ouvrez le fichier A4-150.sla (ou A4-140.sla)
  2. Avec la commande du menu Script > Démarrer un script..., lancez le script importerPros.py
  3. Indiquez le fichier CSV contenant les doonnées à importer (ex. : export_societe.csv)
  4. Un message rappelle les autres fichiers utilisés devant être présents dans le même répertoire. Cliquez sur OK
  5. La barre d'état de Scribus indique quelle zone de texte est actuellement en cours de remplissage, la barre de progression indique l'avancement dans la liste complète des adresses
  6. Un message apparaît après chaque zone de texte. Attention il peut être caché sous une autre fenêtre. Ils permettent de contourner un bug de Scribus qui reste bloqué lorsque trop d'instructions lui sont envoyées
  7. Une fois l'annuaire complètement rempli, il est possible de modifier le résultat avant d'exporter
  8. Dans le menu Fichier > Exporter > Enregistrer en PDF..., ignorez les erreurs et choisissez le fichier PDF de destination

About

Ce projet a pour but la génération d'annuaires papier au format PDF à partir de données au format CSV provenant par exemple d'une exportation par Dolibarr

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published