Un tableau de facture multi-pages

Personne ne sait à l'avance combien de lignes aura une facture. Douze, c'est une page ; trente, c'en fait deux, et la deuxième doit ressembler exactement à la première — mêmes colonnes, mêmes en-têtes, mêmes largeurs — sinon elle revient de la comptabilité du client. Voilà la vraie difficulté d'un tableau de facturation, et elle n'a presque rien à voir avec le fait de tracer des traits.

Ce tableau n'est donc pas l'échantillon d'une seule chose : c'est tout ce qu'il faut à un tableau de facturation, d'un coup, disposé comme une vraie facture le dispose. Il dépasse le bas de la première page et repart en haut de la deuxième à la rangée où il s'était arrêté, avec les mêmes en-têtes au-dessus, les mêmes largeurs de colonnes en dessous, et aucune rangée coupée en deux. Qui évalue tout ça pour de la facturation devrait lire cette page et celle du tableau qui se pagine, juste à côté : à elles deux, elles répondent à la vraie question, celle de savoir ce qu'il vous reste à écrire vous-même pour tourner les pages.

Ce que montre cet exemple

  • Un tableau repris de page en page à partir de la ligne où il s'est arrêté.
  • Des lignes d'en-tête répétées en haut de chaque page.
  • La largeur et l'alignement colonne par colonne, les filets de séparation, et l'espace à l'intérieur d'une cellule.

Le code source complet

Rien n'est omis et rien n'est simplifié : c'est le programme exactement tel qu'il tourne, pour le développeur qui utilise cette bibliothèque. La troisième est la description elle-même : une simple liste de ce que la page doit dire, et c'est elle qu'on envoie au service.

Voir le code Rust Voir le code Python Voir le code JSON

Le document lui-même

Ouvrir le document en anglais Ouvrir le document en français

Un tableau de facture multi-pages, première page

Optimisé, ce document pèse 17.2 ko — au moins 85 % de moins que ce qu'écriraient la plupart des générateurs de PDF

Le document est plus léger qu'avant, et chaque page a exactement le même aspect. Voir la ligne de ce document dans le tableau de tous les exemples.

Des exemples voisins de celui-ci

Un tableau qui se pagine tout seul

Un long tableau confié d'un bloc, qui décide lui-même de son découpage en pages : son en-tête en haut de chaque page, sa note en bas de chaque page, ses fonds gris définis une seule fois pour tout le tableau, et une mention que l'on trace soi-même sous chaque page, à l'endroit exact que le tableau indique.

Des cellules fusionnées sur la hauteur

Une fiche technique dont les cellules sont fusionnées sur la hauteur : chaque groupe est nommé une seule fois en face de toutes ses lignes, avec une remarque à côté ; les traits de séparation s'arrêtent au bord de ces cellules, et une remarque trop longue pour les lignes qu'elle couvre les fait grandir.

Des colonnes mesurées sur leur contenu

La même liste de pièces deux fois : quatre colonnes qui se partagent la largeur à parts égales, puis la référence, la quantité et le prix chacun aussi large que sa propre cellule la plus large, la désignation prenant tout ce qu'ils laissent.

Des images dans les cellules d'un tableau

Un catalogue dont la première colonne est une image et non du texte : quatre images de tailles et de proportions très différentes, chacune posée entière et sans déformation dans la cellule que le tableau lui donne, contre un coin différent — sans réclamer ni largeur à sa colonne ni hauteur à sa ligne.

Tous les exemples, par sujet