L'OTF est une police OpenType à contours PostScript. Le WOFF est une police web, c'est-à-dire une enveloppe compressée autour d'un TTF ou d'un OTF. fontTools se tient entre les deux, et cette page dit exactement ce qui arrive à un fichier OTF en route vers le WOFF.
Ce qui s'exécute quand un fichier OTF devient un WOFF
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 WOFF revient, et aucun des deux fichiers n'est conservé. OTF vers WOFF 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 WOFF
Chaque glyphe, inchangé. Cette paire ne redessine rien : les contours qui quittent l'OTF arrivent dans le WOFF 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 à 60 904 octets en 0,2 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.
La taille, et c'est la raison de le faire. Mesuré sur DejaVu Sans, 6 253 glyphes : 759 720 octets d'OTF deviennent 379 328 octets de WOFF, la moitié de l'original. Rien n'a été retiré pour y parvenir ; c'est de la compression, et le navigateur la défait avant de dessiner.
Ce que la conversion OTF vers WOFF 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.
La possibilité de double-cliquer dessus. Un WOFF n'est pas installable : les systèmes d'exploitation ne l'acceptent pas et les outils de création ne le listent pas. Il est fait pour être servi par HTTP et lu par un navigateur, et c'est tout son objet.
Rien d'autre, et surtout pas de la qualité. Il s'agit de compression et non de rééchantillonnage : le WOFF se décompresse en les octets mêmes que portait l'OTF.
D'où viennent les fichiers OTF et WOFF
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.
WOFF. Une recommandation du W3C de 2012, faite pour une seule tâche : livrer une police par HTTP. Elle enveloppe une police TrueType ou PostScript existante et la compresse avec zlib. Mesuré sur DejaVu Sans : 759 720 octets deviennent 379 328.
Si un modèle doit lire le fichier WOFF
La structure est ce qui subsiste du fichier OTF, et la structure est ce dont un modèle a besoin. OTF en entrée, WOFF en sortie, avec l'arbre des titres intact plutôt qu'aplati en un seul long paragraphe.
OTF vers WOFF, mesuré plutôt que promis
En passant OTF vers WOFF sur le moteur réel avec un vrai fichier, fontTools a écrit 60 904 octets au format WOFF en 0,2 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 WOFF 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 WOFF contient.
Les autres routes vers WOFF, et ce qu'elles ont mesuré
Parmi les routes publiées vers WOFF, OTF est la troisième plus grosse sortie des 3 mesurées. Les fichiers témoins diffèrent : ce classement porte sur la sonde et non sur votre document.
TTF vers WOFF : 379 328 octets en 0,1 secondes.
WOFF2 vers WOFF : 377 532 octets en 0,8 secondes.
Ce que nous ne prétendrons pas sur OTF vers WOFF
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 WOFF 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 WOFF : les questions que l'on pose
Qu'est-ce qui convertit vraiment mon fichier OTF en WOFF ?
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 WOFF revient, et aucun des deux fichiers n'est conservé ensuite.
Combien de temps prend une conversion OTF vers WOFF ?
Sur le fichier utilisé par la sonde, fontTools a mis 0,2 seconde et écrit 60 904 octets de WOFF. 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 WOFF ?
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 WOFF 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.
De combien le WOFF est-il plus petit ?
Mesuré sur DejaVu Sans, une police de 6 253 glyphes : 759 720 octets d'OTF deviennent 379 328 octets de WOFF. Votre police donnera un autre chiffre, mais le rapport tient : le WOFF emploie zlib et atterrit vers la moitié.
Puis-je installer le WOFF sur mon ordinateur ?
Non, et ce n'est pas une limite de cet outil. Un WOFF est un format web : les navigateurs le récupèrent, les systèmes d'exploitation ne l'installent pas. Si vous voulez vous servir de la police en local, l'OTF dont vous êtes parti est le fichier qu'il faut.
La conversion OTF vers WOFF est-elle gratuite ?
Il y a une franchise gratuite chaque mois, et une conversion OTF vers WOFF 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 WOFF moins bon.