Des lettres que vous dessinez vous-même

Un fichier de police contient des lettres dessinées par quelqu'un d'autre. Parfois, ce dont un document a besoin, c'est d'un signe que personne n'a dessiné pour vous : votre logo, la coche de vos fiches qualité, un symbole que votre métier connaît et qu'Unicode ignore. La réponse habituelle est de poser une image à chaque endroit, puis de calculer à la main de combien avancer avant le mot suivant — ce qui se défait le jour où le texte est traduit ou change de taille.

Ici, les marques sont dessinées par le programme lui-même et posées au milieu des mots comme n'importe quelle lettre : elles suivent donc le texte au lieu d'être remises en place à la main. Deux choses en découlent. Une marque peut avoir sa propre couleur — la coche sort verte et la croix rouge partout où on les pose, ce qu'aucune police lue dans un fichier ne sait faire — ou bien n'annoncer qu'une forme et aucune couleur, et elle est alors peinte de la couleur des mots qui l'entourent : le même carré sort rouge sur une ligne et bleu sur la suivante. Et rien de tout ça ne vous coûte le texte, parce que chaque marque est inscrite comme le caractère qu'elle représente : copier la ligne depuis le fichier fini redonne les caractères, une recherche les trouve, et un lecteur d'écran les lit.

Ce que montre cet exemple

  • Des lettres dessinées par le programme, pas lues dans un fichier de police.
  • Une marque qui a sa propre couleur, et une qui prend celle qui l'entoure.
  • Du texte qui se recopie toujours sous les caractères qu'il représente.

Le code source complet

Rien n'est omis et rien n'est simplifié : c'est le programme exactement tel qu'il tourne, pour le développeur qui utilise cette bibliothèque. La troisième est la description elle-même : une simple liste de ce que la page doit dire, et c'est elle qu'on envoie au service.

Voir le code Rust Voir le code Python Voir le code JSON

Le document lui-même

Ouvrir le document en anglais Ouvrir le document en français

Des exemples voisins de celui-ci

Un PDF minimal

Deux pages identiques qui portent l'ossature d'une facture en formes simples, et pas un mot de texte : un fichier d'une douzaine de kilooctets, sans aucune police incorporée.

Montrer la page un sans attendre le reste

Le même document écrit deux fois, de la façon ordinaire et avec sa première page remontée en tête du fichier, avec la part de chacun qui doit arriver avant que la page un apparaisse.

Réduire la taille du fichier

Le même document écrit deux fois, en clair puis rangé, avec ce que pèse chacun et ce que le rangement a fait gagner.

Un document qui demande un mot de passe pour s'ouvrir

Une page que rien ne montre tant que son mot de passe n'est pas saisi : pas de première ligne, pas d'aperçu, aucune image d'elle nulle part. Le mot de passe est donné sur la page de l'exemple, pour être essayé.

Les polices embarquées dans le fichier

Du texte composé dans une police écrite dans le fichier, réduite aux seules lettres employées, et que l'on peut toujours chercher, copier et lire à voix haute.

Tous les exemples, par sujet