DÉMONSTRATION « DOCUMENTS EN SÉRIE » — Scriptane
Données 100 % fictives (communes et associations inventées).

Ce que montre la démo
  Une base de 3 431 demandes de subvention devient 140 attestations PDF
  (une par bénéficiaire, A4, une page), puis un second programme, indépendant,
  relit chaque PDF et vérifie qu'aucun total ne diverge du fichier source.

Relancer (Python 3, reportlab et pymupdf installés)
  python generer.py     écrit les PDF dans sortie/ (résultat identique à chaque lancement)
  python controler.py   relit les PDF, écrit sortie/rapport_de_controle.txt
                        code de sortie 0 = CONFORME, 1 = ÉCART

  Par défaut les deux lisent ../donnees/sortie/base_unique.csv (démo « Données »).
  Autre dossier à contrôler : python controler.py <dossier_pdf> [base.csv]

Le contrôle
  - nombre de PDF = nombre de bénéficiaires distincts ;
  - un seul PDF par bénéficiaire ;
  - total de chaque PDF = somme du CSV pour ce bénéficiaire ;
  - somme de tous les totaux = total du CSV.
  Il a été éprouvé sur un dossier volontairement faussé (montant erroné,
  PDF manquant) : il répond ÉCART, code 1.

Les demandes sans date dans la source apparaissent « à confirmer » :
rien n'est inventé ni corrigé en silence.

Ce zip ne contient que 5 attestations d'exemple ; generer.py produit les 140.
