Des colonnes mesurées sur leur contenu

Un tableau dont les colonnes se partagent la largeur à parts égales se reconnaît au premier coup d'œil, et pas en bien : les références et les chiffres flottent dans trois fois la place qu'il leur faut pendant que les descriptions passent à la ligne faute de place. Le remède évident est d'écrire les largeurs à la main, et il tient jusqu'au jour où une référence s'allonge.

La même liste est composée deux fois sur cette page. Dans la seconde, la référence, la quantité et le prix ont chacun exactement la largeur de leur plus longue entrée, et la description prend tout ce qu'ils laissent — les descriptions cessent donc de passer à la ligne et rien ne tient dans trois fois la place qu'il lui faut. La mesure est prise dans la police même où les cellules sont tracées, et c'est pourquoi l'ajustement est juste plutôt que presque juste, et il le reste le jour où une référence gagne deux caractères.

Ce que montre cet exemple

  • Des largeurs de colonne prises sur la cellule la plus large de chacune.
  • Une colonne laissée libre, qui absorbe tout ce que les colonnes mesurées laissent.
  • Parts égales et largeurs mesurées comparées sur une même page.

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

Des colonnes mesurées sur leur contenu, première page

Optimisé, ce document pèse 14.1 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 de facture multi-pages

Douze lignes de facture tiennent sur une page, trente en occupent deux, la seconde reprenant l'en-tête et la mise en page de la première.

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 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