Deux commandes, un cadre, un même bas de page

Sur un bloc de formulaires préimprimés, le cadre est déjà imprimé sur le papier : un cadre pour les lignes, un filet en dessous, le total sous le filet. Ce qui entre dans le cadre a une longueur différente à chaque fois. Une commande de quatre lignes laisse un travers de main de blanc au-dessus du filet et une commande d’une douzaine le remplit, si bien que deux feuilles du même bloc ressemblent à deux documents différents — et la réponse habituelle, combler la courte avec des lignes vides, laisse une ligne où quelqu’un peut écrire après coup.

Ici, le cadre est rempli. Toute la place que les lignes laissent est partagée entre elles en parts égales, une fois qu’elles ont toutes été mesurées, si bien que la dernière ligne tombe sur le bord du bas, quelle que soit la commande imprimée. Les titres et le total restent exactement là où le papier les met. Les deux notes en bas de page font la même chose avec des mots plutôt qu’avec des lignes : leurs lignes sont écartées jusqu’à ce que chaque note atteigne le bas de son cadre, de sorte que des notes de longueurs inégales finissent sur une même ligne — et une limite est donnée avec le cadre, pour qu’une note de deux lignes garde l’interligne qu’elle avait.

Ce que montre cet exemple

  • Le bas du cadre est le même, que la commande fasse quatre lignes ou quinze.
  • Les en-têtes et le total restent où le papier pré-imprimé les pose.
  • Deux mentions de longueurs différentes ramenées à une même dernière ligne.

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 Ouvrir le document en allemand Ouvrir le document en espagnol Ouvrir le document en italien Ouvrir le document en portugais

Exemples proches 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, la cellule d’un trimestre qui couvre ses lignes et se répète en haut de la page suivante quand une page la coupe, et une mention que l’on place 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 nomenclature 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.

Tous les exemples, par sujet