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.