Une case répétée pour remplir une forme

Dessiner une petite cellule et la faire répéter encore et encore pour remplir une forme : hachure, tissage, fond de points.

Le résultat dans un vrai PDF

Un seul motif, répété sur tout ce qu’il remplit

Six panneaux remplis de motifs répétés — barres, points, une inclinaison obtenue sans redessiner le motif, un mur de briques, deux motifs qui se croisent, un écart plus large — et un nom en grandes lettres tapissé d’un sceau pris sur une page d’un autre PDF.

Ouvrir le PDF Voir l’exemple complet

Également dans les exemples : Une hachure, posée dans n’importe quelle couleur

Résumé

Pensez à un carrelage. Vous ne dessinez pas chaque carreau : vous en dessinez un, et vous dites à quelle distance ils se posent. Ça coûte au fichier une seule case, quelle que soit la taille de la forme. Écartez les cases plus que la case n’est large et vous obtenez des vides entre elles ; rapprochez-les et elles se chevauchent, la suivante par-dessus la précédente. Une case qui ne bouge jamais est refusée : elle se poserait indéfiniment au même endroit.

Techniquement

Écrit au premier niveau d’une requête, sous "tilings"

tilings déclare les cellules répétées que le document définit pour lui-même, en motifs de pavage /PatternType 1, chacune sous le nom par lequel le remplissage d’une forme la choisit. box est la /BBox, la zone de l’espace propre à la cellule qui est posée, et rien en dehors d’elle n’est dessiné. step est le /XStep et le /YStep, l’écart entre les cellules, en largeur et en hauteur : plus large que la boîte, il laisse un vide ; plus étroit, il les fait se chevaucher ; et un pas nul est refusé. colored règle le /PaintType : une cellule qui ne déclare pas ses propres couleurs prend la couleur du remplissage qui l’emploie, ce qui permet à une même hachure de servir dans n’importe quelle couleur. spacing dit dans quelle mesure le logiciel de lecture peut arbitrer entre le pas et la cellule ; en son absence, le pas reste exact. Pour un nom déclaré deux fois, la dernière déclaration l’emporte.

Schéma de la requête

  • tilings — tableau, facultatif, vide par défaut.
  • tilings[].name — chaîne, obligatoire. Le nom sous lequel un remplissage choisit cette cellule. Pour un nom déclaré deux fois, la dernière déclaration l’emporte.
  • tilings[].box — objet, obligatoire, fait de llx, lly, urx et ury. La zone de l’espace propre à la cellule qui est posée.
  • tilings[].step — tableau de deux nombres, obligatoire. La distance entre les cellules, en largeur et en hauteur. Un pas nul est refusé.
  • tilings[].colored — booléen, facultatif, true par défaut. Dit si la cellule définit ses propres couleurs. Une cellule qui ne les définit pas prend la couleur du remplissage qui l’emploie, ce qui permet à une même hachure de servir dans n’importe quelle couleur.
  • tilings[].spacing — chaîne, facultative. Dans quelle mesure le logiciel de lecture peut arbitrer entre le pas et la cellule : constant, undistorted, constant_and_fast. En son absence, le pas reste exact.
  • tilings[].items — tableau, obligatoire. Les formes dont la cellule est faite, dans l’ordre où elles sont dessinées, comme les accepte un dessin déclaré.
  • tilings[].matrix — tableau de six nombres, facultatif. Ce qu’est l’espace propre au plan pavé dans l’espace de la page. Absent, le pavage se fait dans l’espace de la page, si bien qu’une hachure se penche en inclinant le plan plutôt qu’en dessinant une cellule penchée.
  • tilings[].pdf_pages — tableau, facultatif, vide par défaut. Les pages de PDF fournis que la cellule place sous ses formes : un sceau ou un motif découpé dans une image numérisée, répété sur toute une zone. Chaque entrée désigne dans pdf la partie fournie d’où vient la page, dans page laquelle de ses pages (la première par défaut), dans x et y la position de son coin inférieur gauche (0 par défaut) et dans scale son échelle (1 par défaut). Une entrée qui désigne une partie que la requête n’a pas fournie est refusée.

Portée : le document entier. Une forme fait appel à une case en la nommant là où elle nommerait une couleur, et la case est posée dans les coordonnées de la page, si bien que deux formes remplies de la même case s’alignent l’une sur l’autre.

Une requête entière qui crée un PDF

{
  "tilings": [
    {
      "name": "upright",
      "box": { "llx": 0, "lly": 0, "urx": 8, "ury": 8 },
      "step": [8, 8],
      "spacing": "constant",
      "colored": true,
      "items": [
        {
          "type": "rect",
          "rect": { "llx": 0, "lly": 0, "urx": 3, "ury": 8 },
          "fill": [0.12, 0.28, 0.52]
        }
      ]
    }
  ],
  "items": [
    {
      "type": "rect",
      "rect": { "llx": 72, "lly": 600, "urx": 320, "ury": 740 },
      "fill": { "pattern": "upright" }
    }
  ]
}

La ligne qui l’envoie, en trois langages

La couleur et la façon dont elle est rendue

L’appareil pour lequel les couleurs sont déclarées À quelle plaque d’une feuille séparée correspond une page L’appareil pour lequel les couleurs d’une page sont dites Déclarer une couleur au-delà du rouge, du vert et du bleu Ce que veulent dire les nombres bruts d’une page Une couleur qui glisse vers une autre L’opacité, le mélange, et ce que demande une presse L’espace dans lequel la page mélange ses couleurs

Où aller ensuite

Toutes les clés JSON d’une requête, en une page Les quarante et un autres réglages d’une requête

Voir les prix Voir les exemples