Un dessin, placé autant de fois qu'on veut

Un logo sur chaque page d'un document de deux cents pages, c'est le même dessin deux cents fois. Écrit en entier à chaque fois, cela fait deux cents copies des mêmes instructions dans le fichier, et un document bien plus lourd qu'il n'a de raison de l'être — ce que remarque celui qui doit l'envoyer, jamais celui qui l'a fabriqué.

Ici, le badge est décrit une fois et posé huit fois, plus une neuvième à demi-taille, et le fichier n'en contient qu'un seul exemplaire, quel que soit le nombre de fois où il apparaît. Seuls les noms changent d'un badge à l'autre : les noms sont donc tracés sur la page par-dessus le badge plutôt qu'à l'intérieur. Toute l'astuce tient dans cette limite : garder tout ce qui varie hors du dessin partagé, et un seul exemplaire continue de servir chaque badge sur chaque page.

Ce que montre cet exemple

  • Un dessin décrit une fois, puis posé en le nommant et en disant où.
  • Le même dessin posé à une autre taille sans avoir à le redécrire.
  • Le texte qui change est dessiné par-dessus le dessin commun, pas dedans.

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 dessin, placé autant de fois qu'on veut, première page

Optimisé, ce document pèse 13.4 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

Découper ce qu'on dessine

La même zone de rayures vue par deux fenêtres : un disque plein, et un anneau dont le milieu reste nu.

Transparence et modes de fusion

Des zones de couleur à moitié transparentes qui se chevauchent, un carré orange mis sur une barre bleue de quatre façons de mélanger les couleurs, et une ligne de lettres qui se chevauchent, peinte de deux façons.

Dégradés en ligne droite, en cercle, et une couleur lue dans une fonction

Cinq panneaux : un bandeau dont la couleur s'éteint, le même fondu posé en diagonale, une lueur prolongée au-delà de son cercle pour que les coins se remplissent, un dégradé qui passe par une troisième couleur, et un damier dont la couleur se calcule à partir de l'endroit où se tient chaque point, plus rouge vers la droite et plus vert vers le haut.

Textes et formes remplis d'un dégradé

Un dégradé employé comme couleur de remplissage : un titre dont les lettres sont autant de fenêtres sur un dégradé à trois couleurs, et un panneau rempli d'un dégradé en cercle.

Quatre sortes de maillages, une couleur à chaque sommet

Six triangles autour d'un centre qu'ils partagent, leurs arêtes tracées par-dessus la couleur ; un treillis de points dans les quatre encres d'imprimerie ; un carreau dont les quatre côtés sont des courbes ; et le même carreau, dont quatre points intérieurs tirent les couleurs.

Tous les exemples, par sujet