Convertisseur de polices — WOFF2 vers TTF, TTF vers WOFF/WOFF2 dans le navigateur
Convertissez des polices TTF, WOFF et WOFF2 directement dans la page : le format source est détecté à partir de la signature du fichier, la couverture des glyphes et le hinting TrueType sont conservés tels quels, et rien n'est téléversé — le codec WOFF2 est une compilation WebAssembly locale. Une police CJK de 20 Mo fonctionne, mais demande des dizaines de secondes et un fichier à la fois.
Ce que ce convertisseur de polices modifie — et ce qu'il laisse intact
Trois formats en entrée, trois en sortie
Choisissez un fichier .ttf, .woff ou .woff2, sélectionnez TTF, WOFF ou WOFF2 comme cible et téléchargez le résultat. Le format source est reconnu par la signature (wOFF, wOF2, true/OTTO/0x00010000), vous n'avez donc rien à préciser ; choisir le même format renvoie les octets d'origine.
WOFF2 vers TTF et retour, en local
L'encodage et le décodage WOFF2 passent par le codec WOFF2 de Google compilé en WebAssembly dans la page, tandis que l'ancien conteneur WOFF est géré par pako en JavaScript pur — aucun aller-retour serveur.
Couverture et hinting préservés
L'outil réempaquette les tables de la police au lieu de redessiner les contours : le nombre de glyphes et la couverture cmap restent identiques, et les tables de hinting TrueType (cvt, prep, fpgm et instructions glyf) passent intactes. La seule table supprimée par l'encodeur WOFF2 est DSIG, la signature numérique.
Pensé pour la compatibilité des webfonts
Servez du WOFF2 aux navigateurs modernes, gardez du WOFF ou du TTF pour les piles plus anciennes, ou uniformisez un dossier de polices hétéroclites. Si vous voulez seulement un fichier plus léger, utilisez le générateur de sous-ensembles : cette page ne supprime aucun glyphe.
Des limites annoncées franchement
Un fichier à la fois (seul le premier fichier sélectionné est lu), aucun réglage de graisse ou d'italique, et les collections TTC sont rejetées comme signature inconnue. Une police CJK de 20 Mo se convertit, mais en dizaines de secondes et avec des centaines de Mo de mémoire.
FAQ sur la conversion de format de police
Quels formats d'entrée et de sortie sont pris en charge ?
Entrée : TTF (sfnt TrueType), WOFF et WOFF2 — les trois extensions acceptées par le sélecteur de fichiers, le format source étant détecté automatiquement. Sortie : TTF, WOFF ou WOFF2 dans le menu. Les collections TTC/OTC échouent avec « Unrecognized font signature: ttcf », et l'OTF n'est pas proposé dans le sélecteur, même si l'analyseur reconnaîtrait une police OTTO/CFF.
Puis-je ajuster la graisse ou mettre la police en italique ?
Non. La conversion ne fait que réempaqueter les contours et tables existants ; elle ne synthétise ni gras, ni inclinaison, ni nouvelles graisses. Cela demande un outil de création de polices ou un axe variable, et cette page n'offre aucun de ces contrôles.
La couverture des caractères ou le hinting sont-ils perdus ?
Couverture et hinting TrueType sont conservés : toutes les tables sont copiées, le nombre de glyphes reste identique (une police Song de 20,9 Mo a gardé ses 60 455 glyphes), et cvt, prep, fpgm ainsi que les instructions glyf subsistent. L'encodage WOFF2 ne supprime que la table de signature DSIG ; la sortie WOFF garde toutes les tables.
Les grandes polices CJK sont-elles gérées, et quelle mémoire faut-il ?
Oui, mais sans plafond de taille, et le fichier entier est chargé en mémoire. Mesuré ici : un TTF de 20,9 Mo est devenu un WOFF2 de 8,6 Mo en environ 55 secondes avec environ 350 Mo de mémoire ; un Noto Sans SC de 16,9 Mo a pris environ 39 secondes pour environ 400 Mo. Le thread principal est bloqué pendant ce temps, la page se fige — mieux vaut d'abord passer par le générateur de sous-ensembles.
Puis-je convertir plusieurs polices en une seule fois ?
Non. Le sélecteur ne lit qu'un fichier (files[0]) et chaque exécution écrase le résultat précédent ; il n'y a ni file d'attente, ni liste de progression, ni traitement par glisser-déposer.
Est-ce local ou cela passe-t-il par un serveur ?
Entièrement local. L'encodage et le décodage WOFF2 tournent dans un module WebAssembly Emscripten intégré en data URI, et l'encapsulation WOFF est assurée par pako en JavaScript. La police n'est jamais téléversée, vos polices sous licence restent donc privées.
Que se passe-t-il en cas d'échec, et pourquoi le fichier s'appelle-t-il toujours font.* ?
Si la conversion échoue, rien n'est téléchargé et l'erreur part uniquement dans la console ; la notification de succès n'apparaît qu'une fois le blob construit. Le nom de téléchargement est figé sur font.ttf, font.woff ou font.woff2, pensez donc à le renommer selon votre famille de polices avant publication.

