Présentation

Le projet QR Font de Jim Paris génère une police OpenType expérimentale qui transforme le texte délimité par des crochets en un symbole QR Code, tout en laissant le texte environnant lisible.

La police utilise le mode byte, les entrées ASCII imprimables, un motif de masque fixe 0 et des délimiteurs [ et ]. Les polices sont générées plutôt que créées manuellement. Le script de construction émet des contours de glyphe et une logique de fonctionnalité GSUB, puis les compile en polices TrueType.

Fonctionnement

Les polices utilisent la bibliothèque uv pour la gestion des dépendances Python. Le générateur peut être exécuté directement avec la commande

uv run tools/build_font.py
. Par défaut, le générateur lit la police Liberation Sans Regular à partir de
/usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf
. Une police TrueType source compatible différente peut être utilisée avec l'option
--base-font /path/to/BaseFont-Regular.ttf
.

Implications et limites

La police générée est une version modifiée de la police Liberation Sans Regular et est licenciée sous la licence SIL Open Font License, version 1.1. La police nécessite un environnement qui applique les fonctionnalités GSUB à la police. Les entrées à l'intérieur d'un bloc QR sont limitées aux caractères ASCII imprimables, jusqu'à 17, 32 ou 53 caractères selon la version de police sélectionnée.

Utilisation

Pour essayer la police, ouvrez le fichier

dist/index.html
dans un navigateur et tapez du texte avec des crochets, comme [hello]. Le texte mixte, tel que abc[def]ghi, devrait s'afficher comme du texte normal, suivi d'un code QR pour def, puis du texte normal.