Une police dont vous dessinez les lettres

Décrivez vos propres lettres avec des traits et des formes, puis composez du texte avec elles comme avec toute autre police.

Résumé

Il vous faut parfois un signe qui n'existe dans aucune police du marché : un logo d'entreprise, un pictogramme d'atelier, un bâton de comptage. Dessiné trait par trait et logé dans une police de votre fabrication, il se comporte dès lors comme une lettre : vous choisissez un corps, vous tapez le caractère, et le dessin apparaît à cette échelle, au milieu d'une phrase ordinaire.

Techniquement

Écrit au premier niveau d'une requête, sous "type3_fonts"

type3_fonts déclare des polices /Subtype /Type3 dont chaque lettre est un dessin que la requête décrit elle-même, avec les mêmes formes qu'un élément dessine sur une page : un tracé, un rectangle, un trait, un bloc de texte. Ces dessins sont les /CharProcs de la police, des flux de contenu à part entière. Les lettres vivent dans un espace qui leur est propre, et la /FontMatrix dit ce que vaut une unité de cet espace dans l'espace du texte. Les codes sont distribués dans l'ordre des caractères, si bien que les mêmes lettres dans un autre ordre donnent la même police.

Schéma de la requête

  • type3_fonts — tableau, facultatif, vide par défaut.
  • type3_fonts[].name — chaîne, obligatoire. Le nom sous lequel les éléments écrivent avec cette police.
  • type3_fonts[].matrix — tableau de six nombres, obligatoire. Ce que vaut l'espace des lettres dans l'espace du texte ; le millième de cadratin habituel s'écrit [0.001, 0, 0, 0.001, 0, 0].
  • type3_fonts[].box — objet, obligatoire. La zone de l'espace du glyphe qui est gardée : llx, lly, urx, ury, des nombres, tous obligatoires. Rien en dehors n'est dessiné.
  • type3_fonts[].glyphs — tableau, obligatoire. Les lettres que la police dessine.
  • glyphs[].character — caractère, obligatoire. Le caractère que cette lettre dessine.
  • glyphs[].width — nombre, obligatoire. De combien la plume avance après elle, dans l'espace des lettres.
  • glyphs[].box — objet, facultatif. Les bornes propres de la forme. Une lettre qui déclare sa boîte prend la couleur du texte autour d'elle, et les couleurs que ses formes déclarent sont laissées de côté. Une lettre qui n'en déclare pas se peint elle-même, dans les couleurs de ses formes.
  • glyphs[].items — tableau, obligatoire. Les formes qui la dessinent, dans l'ordre du tracé : path, rect, line. Un bloc de texte à l'intérieur d'une lettre est refusé.

Les codes tiennent sur un octet. Une lettre a accès aux espaces de couleur, aux dégradés, aux états graphiques et aux calques déclarés par la requête.

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

{
  "type3_fonts": [
    {
      "name": "blocks",
      "matrix": [0.001, 0, 0, 0.001, 0, 0],
      "box": { "llx": 0, "lly": 0, "urx": 700, "ury": 700 },
      "glyphs": [
        {
          "character": "A",
          "width": 700,
          "box": { "llx": 0, "lly": 0, "urx": 600, "ury": 600 },
          "items": [
            {
              "type": "rect",
              "rect": { "llx": 50, "lly": 0, "urx": 550, "ury": 600 },
              "fill": [0]
            }
          ]
        }
      ]
    }
  ],
  "items": [
    {
      "type": "text",
      "rect": { "llx": 60, "lly": 700, "urx": 300, "ury": 760 },
      "content": ["AAA"],
      "font": "blocks",
      "font_size": 36
    }
  ]
}

La ligne qui l'envoie, en trois langages

Les polices

Contenir sa police dans le document Les anciens programmes de police Type 1 Les quatorze polices de tout logiciel de lecture Les finesses typographiques d'une police Police de secours pour les signes rares Des polices dont les lettres coûtent un octet

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