TTF to WOFF Converter
Convert TrueType (.ttf) fonts to Web Open Font Format (.woff).
TTF to WOFF Converter converts font files between TTF, OTF, WOFF, WOFF2, and Base64 CSS definitions locally in your web browser. Font data processing runs entirely on your device without transmitting files over the network.
Runs in your browser- Privacy
- Runs entirely in your browser — nothing is uploaded
- Cost
- Free, unlimited, no sign-up
What WOFF adds to a TTF
WOFF 1.0 wraps an existing sfnt font for web delivery. The W3C Recommendation defines a 44-byte header, a table directory, the font tables, then an optional extended metadata block and an optional private data block. Each table may be compressed individually with the zlib compress2() function. The font itself is untouched: the spec requires the same set of tables as the input font, and requires that a decoder restore them so the font displays identically.
Two things the wrapper buys that raw .ttf hosting does not. The container is font-specific, so a browser can reject a malformed file before handing it to the rasteriser, and the metadata block gives a foundry somewhere to state licensing and credits that travels with the file rather than sitting in a text file nobody reads.
WOFF or WOFF2?
WOFF2, for anything you actually serve. It compresses the whole font with Brotli instead of compressing each table with zlib, and it preprocesses glyf, loca and hmtx first so the compressor has less to work with. WOFF 1.0 is worth generating only as a fallback source for browsers that predate WOFF2 support, and on most sites that audience is now too small to justify the second file. Generate the primary with TTF to WOFF2 and add this one only if your analytics say you need it.
@font-face {
font-family: 'Example Sans';
src: url('/fonts/example-sans.woff2') format('woff2'),
url('/fonts/example-sans.woff') format('woff');
font-display: swap;
}The browser takes the first entry whose format() it recognises, so WOFF2 is listed first and the WOFF line is only ever reached by an engine that cannot read the line above it.
Round-tripping
Because WOFF preserves table data rather than re-rendering outlines, unwrapping gives the font back unaltered, and WOFF to TTF does exactly that. The file will not always be byte-identical to the original: the spec makes the table directory rebuild in ascending tag order, and any unreferenced padding in the source is dropped when the WOFF is made. For a well-formed input font, with correct padding, correct checksums and no extraneous data between tables, the round trip preserves everything that affects rendering.
| Format | Outline data | Compression | Where it belongs |
|---|---|---|---|
.ttf TrueType | Quadratic curves in the glyf and loca tables | None | Desktop installation, Android build pipelines, tools that only read glyf |
.otf OpenType with PostScript outlines | Cubic curves in a CFF or CFF2 table | None | Desktop installation, print and design applications |
.woff WOFF 1.0 | Whichever of the two the wrapped font already used | zlib, applied to each table separately | A fallback source for browsers too old for WOFF2 |
.woff2 WOFF 2.0 | Whichever of the two the wrapped font already used | Brotli over the whole font, after a reversible transform of glyf, loca and hmtx | The format to actually serve on the web |
.eot Embedded OpenType | Either, wrapped in a Microsoft-specific container | Optional MicroType Express | Internet Explorer 8 and earlier. A W3C Member Submission that never became a standard |
.ttc / .otc collection | Either, with tables shared between several faces | None on its own, though WOFF2 can wrap a collection | Shipping a whole family in one file, common for CJK fonts |
Related font conversions
- TTF to WOFF2 for the file that should be first in your
srclist. - WOFF to TTF to unwrap a web font again.
- OTF to TTF when the source family has PostScript outlines.
- Font to Base64 to inline a small face into CSS instead.
- Format hubs: WOFF, WOFF2, TTF and OTF.
Frequently asked questions
Is my font file uploaded anywhere?
What is the difference between OTF and TTF?
Is converting a font lossless?
Am I allowed to convert a commercial font?
Can I convert an EOT or TTC file here?
How to use the ttf to woff converter
- 1Select your font file — the file stays on your device and is never uploaded.
- 2Press Run, then download the result when it is ready.
Sources & specifications
Embed this tool
Put the working ttf to woff converter on your own site. It runs in your visitors' browsers exactly as it does here — free, no account, nothing uploaded.
Share this tool
Related tools
Last updated
More developer tools