Polices aux signes en couleur

Composer les signes qu’une police en couleur peint par couches, dans les couleurs de sa palette, tandis que le texte qui les entoure reste du texte.

Le résultat dans un vrai PDF

Des lettres que vous dessinez vous-même

Une coche, une croix et un tiret dessinés par le programme, ajoutés au document comme une police, et posés au milieu de mots ordinaires.

Ouvrir le PDF Voir l’exemple complet

Résumé

Certains fichiers de police contiennent des signes peints en plusieurs couleurs : une étoile, un drapeau, un panneau d’avertissement. Chacun est une pile de formes unies posées les unes sur les autres. Chaque forme est remplie d’une couleur prise dans une palette du fichier, et certains fichiers en contiennent plusieurs. Vous indiquez les caractères que vous voulez en couleur, et ils apparaissent sur la page tels que le fichier les peint. Toutes les autres lettres de la même ligne apparaissent dans la police ordinaire, et la ligne entière peut toujours être sélectionnée, copiée et retrouvée par une recherche.

Techniquement

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

color_fonts construit, à partir d’une police déjà déclarée, une nouvelle police que les éléments désignent par un nom qui lui est propre. Le fichier dont elle est issue peint certains de ses glyphes, dans sa table COLR, sous forme de piles de couches de couleur unie, et contient dans sa table CPAL les palettes qui donnent leur couleur à ces couches. Chaque caractère de characters que le fichier peint en couleur est dessiné par une police de dessins que le document intègre à côté de la police ordinaire. Elle remplit le contour de chaque couche, en commençant par celle du dessous, de la couleur que lui attribue la palette. Une couche que le fichier peint de la couleur du texte prend la couleur en vigueur à l’endroit où le texte s’affiche. Tout autre caractère est dessiné avec la police ordinaire, qu’il soit absent de characters, dépourvu de glyphe ou sans couleur dans le fichier. Le texte reste sélectionnable, et la recherche y fonctionne. Seule la couleur par couches est peinte, celle de COLR version 0 : les signes faits d’images et la couleur en dégradés ne le sont pas.

Schéma de la requête

  • color_fonts — tableau, facultatif, vide par défaut.
  • color_fonts[].name — chaîne, obligatoire. Le nom par lequel les éléments désignent cette police.
  • color_fonts[].from — chaîne, obligatoire. Le nom de la police dont elle est issue : une police que la requête intègre dans fonts, une police propre au client ou une police du magasin de polices. Jamais l’une des standard_fonts : ces quatorze polices ne sont pas incorporées au fichier, si bien qu’il n’existe aucun fichier où lire des couleurs.
  • color_fonts[].characters — chaîne, obligatoire. Les caractères dessinés en couleur, dans la mesure où le fichier les peint en couleur.
  • color_fonts[].palette — entier, facultatif. Le numéro de la palette qui fournit les couleurs, en comptant à partir de 0. S’il est absent, les couleurs viennent de la palette 0, et un fichier sans palette ne peint rien en couleur. Un numéro qui dépasse le nombre de palettes du fichier est refusé, et la réponse indique combien il en contient.

Portée : le nom déclaré, et lui seul. La police d’origine reste accessible sous son propre nom, inchangée. Deux polices issues d’un même fichier, chacune avec sa propre palette, permettent de composer le même signe dans deux jeux de couleurs sur une même ligne.

Une police déclarée sous le nom de la police dont elle est issue, ou sous un nom qu’une autre police utilise déjà, est refusée. Il en va de même d’un fichier dont les tables de couleur sont illisibles. Un fichier inclus dans la requête compte comme une police propre au client et demande les mêmes droits.

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

Un nom ci-dessous tient lieu de fichier de police : mettez le fichier encodé à sa place, ou envoyez le fichier lui-même à côté de la description, comme une pièce fournie dans le même appel. Une page contient une vraie police déjà encodée, et sa requête part telle quelle.

{
  "fonts": [
    { "name": "body", "data": "PASTE_THE_FONT_FILE_BASE64_HERE" },
    { "name": "signs-file", "data": "PASTE_THE_COLOUR_FONT_FILE_BASE64_HERE" }
  ],
  "color_fonts": [
    { "name": "signs", "from": "signs-file", "characters": "★⚑" },
    {
      "name": "signs-dark",
      "from": "signs-file",
      "characters": "★",
      "palette": 1
    }
  ],
  "items": [
    {
      "type": "text",
      "rect": { "llx": 72, "lly": 700, "urx": 523, "ury": 740 },
      "content": [
        { "text": "★", "font": "signs" },
        " Approved, ",
        { "text": "⚑", "font": "signs" },
        " Flagged"
      ],
      "font": "body",
      "font_size": 18,
      "color": [0, 0, 0]
    },
    {
      "type": "text",
      "rect": { "llx": 72, "lly": 650, "urx": 523, "ury": 690 },
      "content": [{ "text": "★", "font": "signs-dark" }, " Approved"],
      "font": "body",
      "font_size": 18,
      "color": [0, 0, 0]
    }
  ]
}

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 que possède tout logiciel de lecture Les finesses typographiques d’une police Une police dont vous dessinez les lettres Une police de secours pour les signes les plus rares Des polices dont les lettres coûtent un octet Des polices que le document nomme sans les contenir Une police que ses auteurs interdisent d’inclure Polices incorporées en entier

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