WOFF2 converter for Windows
Every online font converter asks you to upload the file first. For a client's licensed typeface, that is the one thing you should not do.
Get TypeSmith from the Microsoft StoreWhat the formats are for
| Format | Used for | Notes |
|---|---|---|
| TTF / OTF | Installing on a machine, desktop apps | Not what a web page should load |
| WOFF | Web, first generation | Compressed wrapper, wide support |
| WOFF2 | Web, current | Brotli-compressed, typically 30% smaller than WOFF |
Converting offline, and checking what you got
- Open the font in TypeSmith (it reads TTF, OTF, TTC - every subfont - WOFF and WOFF2).
- Look at the health report first. If a font is missing required tables, or its
locaandheaddisagree, the conversion will "succeed" and the font will still fail in a browser. Better to know that before you ship it. - Choose the target format and convert. Nothing leaves the machine.
- Compare the size before and after - a WOFF2 that is bigger than the TTF usually means the font was already compressed badly or is a subset with almost nothing left in it.
Subsetting, and the licence trap
Most of a 6 MB CJK font is characters a given page will never use. Subsetting to the characters you actually need turns it into a 40 KB file. The trap is licensing: many commercial fonts allow conversion but restrict subsetting or require the subset to stay inside the product it was licensed for. Check the licence bits the font itself declares before you subset.
Converting and subsetting are part of the Pro unlock (one-time purchase). Viewing, inspecting and the health report are free, forever.
Questions
Is an online converter not simpler?
It is simpler right up to the point where the font is licensed to a client and cannot be uploaded anywhere. Local conversion also lets you inspect the result before using it.
Does it keep the font's metadata?
Yes - names, licence fields and metrics are preserved; the health report shows what the file declares.
Can it fix a broken font?
No. It reports what is wrong (missing tables, checksum mismatches, inconsistent loca/head) so you can go back to the source file.