Des images dans les cellules d'un tableau

Un catalogue produits, ce sont des photos, et les photos viennent des fournisseurs : l'une fait neuf cents pixels de large, la suivante seize, et il n'y en a pas deux aux mêmes proportions. Les ramener toutes à une taille commune avant de pouvoir monter la page, c'est une étape que quelqu'un doit lancer, penser à relancer au trimestre suivant, et justifier le jour où elle a été sautée.

Les photos entrent donc telles qu'elles sont arrivées. Chacune est ajustée, entière et sans déformation, dans le rectangle qui lui échoit, et sa place à l'intérieur de ce rectangle est l'alignement que la case avait déjà. La colonne garde la largeur que le tableau lui a donnée et chaque ligne fait la hauteur de son propre texte, quelles que soient les photos reçues ce matin.

Ce que montre cet exemple

  • Des images logées dans les cellules sans être étirées ni rognées.
  • Une image qui laisse à la colonne sa largeur et à la ligne sa hauteur.
  • La place dans la cellule est reprise de l'alignement de la cellule elle-même.

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 images dans les cellules d'un tableau, première page

Optimisé, ce document pèse 75.1 ko — au moins 55 % 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 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.

Tous les exemples, par sujet