L'OTF est une police OpenType à contours PostScript. Le TTX est la forme XML d'une police, lisible et modifiable à la main. fontTools se tient entre les deux, et cette page dit exactement ce qui arrive à un fichier OTF en route vers le TTX.
Ce qui s'exécute quand un fichier OTF devient un TTX
fontTools dans notre propre Python, sur une machine que nous louons et que nous surveillons. Votre fichier OTF est envoyé une fois, fontTools s'exécute une fois, le fichier TTX revient, et aucun des deux fichiers n'est conservé. OTF vers TTX fait partie des 3649 paires sur lesquelles ce moteur a été sondé avec un vrai fichier, et c'est pour cela que cette page existe quand celles que la sonde n'a pas su prouver n'existent pas.
Ce qui survit du fichier OTF dans le fichier TTX
Chaque glyphe, inchangé. Cette paire ne redessine rien : les contours qui quittent l'OTF arrivent dans le TTX point pour point, si bien que les lettres s'affichent exactement comme le dessinateur les a tracées. Le moteur les compte à la sortie et refuse le fichier si le compte a bougé. Mesuré sur cette paire : le fichier de sonde est revenu à 1 243 980 octets en 0,3 s.
Le hinting, les paires de crénage et les fonctions OpenType : les tables qui disent à un moteur de rendu comment espacer et substituer les glyphes. Cette paire déplace le conteneur autour d'elles plutôt qu'à travers elles.
Tout, sous forme lisible. Le TTX est la police entière écrite en XML : chaque table, chaque glyphe avec ses coordonnées, la table des noms, la table de caractères. Mesuré sur DejaVu Sans, les 6 253 glyphes sont décrits un par un.
La possibilité de le modifier à la main et de le remettre en place. Le TTX n'est pas une impasse : fontTools le relit en police, et c'est ainsi qu'on corrige une métrique, qu'on renomme une famille ou qu'on retire une table sans posséder d'éditeur de polices.
Ce que la conversion OTF vers TTX vous coûte
Rien de l'OTF lui-même, et il vaut mieux le dire franchement que d'inventer une réserve. Ce que cette paire change, c'est la façon dont la police est empaquetée, jamais ce qu'elle dessine.
Le fait d'être une police. Rien n'affiche un TTX : ni navigateur, ni traitement de texte, ni système d'exploitation. C'est la description d'une police, à lire ou à modifier, et il doit repasser par fontTools pour en redevenir une.
La compacité, et de beaucoup. Le XML pèse environ seize fois la police : mesuré, 759 720 octets d'OTF deviennent 11 943 515 caractères de TTX. C'est pourquoi l'entrée est plafonnée plus bas ici que pour les autres cibles.
D'où viennent les fichiers OTF et TTX
OTF. Les fonderies typographiques l'écrivent, et tout ce qui descend des outils Adobe aussi. Ses contours sont des courbes cubiques dans une table CFF, et non des quadratiques dans une table glyf, et cette différence n'a rien de cosmétique : c'est pourquoi on ne peut pas se contenter de renommer un OTF en TTF.
TTX. Ce n'est pas une police que quoi que ce soit sache afficher : c'est le XML qu'écrit fontTools quand on demande à voir l'intérieur d'une police. Chaque table, chaque glyphe, en texte. Il pèse environ seize fois la police, mesuré : DejaVu Sans devient 11,9 Mo de XML.
Si un modèle doit lire le fichier TTX
La structure est ce qui subsiste du fichier OTF, et la structure est ce dont un modèle a besoin. OTF en entrée, TTX en sortie, avec l'arbre des titres intact plutôt qu'aplati en un seul long paragraphe.
OTF vers TTX, mesuré plutôt que promis
En passant OTF vers TTX sur le moteur réel avec un vrai fichier, fontTools a écrit 1 243 980 octets au format TTX en 0,3 secondes, machine par ailleurs au repos. C'est un fichier OTF un jour donné et non une moyenne, et c'est pourquoi le nombre est donné avec le fichier qui l'a produit.
Le verdict OTF vers TTX a été obtenu par la relecture de la police avec fontTools et le contrôle de la sorte de contours qu'elle porte, c'est-à-dire que la sortie a été relue et reconnue. Le contrôle employé compte, parce qu'ils ne prouvent pas tous la même chose, et un code de statut 200 ne prouve strictement rien sur ce que le fichier TTX contient.
Ce que nous ne prétendrons pas sur OTF vers TTX
Un fichier OTF de plus de 25 Mo est refusé avant la fin de l'envoi plutôt qu'après, pour que vous n'attendiez pas un refus.
Une conversion OTF vers TTX qui dépasse 50 secondes est tuée, et le processus fontTools avec elle. Une exécution abandonnée resterait posée sur l'un des deux cœurs de la machine jusqu'à ce que quelqu'un le remarque.
Cette famille ne changera pas le genre de contours qu'une police porte, et cela exclut OTF vers TTF. Une police TrueType dessine avec des courbes quadratiques, une police PostScript avec des courbes cubiques, et transformer l'une en l'autre revient à approcher chaque courbe du fichier. C'est faisable, cela déplace des points, et ce n'est pas ce qui se passe ici. Le demander rend un 415 avec le nom de la cible qui aurait fonctionné.
Renommer aurait été facile et cela aurait été un mensonge. Mesuré le 30 août avec un vrai fichier OTF : demander à fontTools un sfnt ordinaire rend un fichier dont les quatre premiers octets sont OTTO, identique octet pour octet à la sortie .otf. Servi en .ttf, il s'ouvre dans la plupart des outils et casse dans ceux qui lisent l'extension pour décider quoi faire. Le moteur le refuse plutôt.
Un fichier OTF à la fois, choisi dans le navigateur. Il n'y a rien d'autre à régler et rien d'autre à proposer.
OTF vers TTX : les questions que l'on pose
Qu'est-ce qui convertit vraiment mon fichier OTF en TTX ?
C'est fontTools qui s'en charge, dans notre propre Python, sur une machine que nous louons et que nous surveillons. Ni astuce de navigateur, ni service d'un tiers : le fichier OTF est envoyé une fois, fontTools s'exécute une fois, le TTX revient, et aucun des deux fichiers n'est conservé ensuite.
Combien de temps prend une conversion OTF vers TTX ?
Sur le fichier utilisé par la sonde, fontTools a mis 0,3 seconde et écrit 1 243 980 octets de TTX. C'est une mesure réelle sur un fichier OTF réel, pas une moyenne et pas une promesse sur le vôtre : un OTF plus gros prend plus longtemps, et au-delà de 50 secondes l'exécution est arrêtée.
Qu'est-ce que je perds en passant de l'OTF au TTX ?
Celle qu'il faut connaître en premier : rien de l'OTF lui-même, et il vaut mieux le dire franchement que d'inventer une réserve. Ce que cette paire change, c'est la façon dont la police est empaquetée, jamais ce qu'elle dessine.
Le TTX aura-t-il l'air différent de l'OTF ?
Non. Pas un peu, pas dans les cas limites : les contours sont copiés et non redessinés, si bien que chaque glyphe garde les coordonnées qu'il avait. Le moteur compte les glyphes à la sortie et refuse le fichier si le compte a bougé, ce qui est la seule façon dont cela pourrait mal tourner en silence.
Puis-je retransformer le TTX en police ?
Oui, c'est à cela qu'il sert. fontTools relit le TTX en police, et c'est ainsi qu'on corrige une métrique, qu'on renomme une famille ou qu'on retire une table à la main. Cet outil écrit le TTX ; le remettre en place est une étape que vous lancez vous-même.
Pourquoi la limite de taille est-elle plus basse sur celle-ci ?
Parce que le XML pèse environ seize fois la police. Mesuré : une police de 760 Ko devient 11,9 Mo de TTX. L'entrée est plafonnée à 5 Mo ici contre 25 Mo pour les autres cibles, pour que le pire cas reste autour de cent mégaoctets au lieu de quatre cents.
La conversion OTF vers TTX est-elle gratuite ?
Il y a une franchise gratuite chaque mois, et une conversion OTF vers TTX coûte un demi-crédit dessus. Quand la franchise est épuisée, l'outil le dit et s'arrête, plutôt que de vous remettre discrètement un TTX moins bon.