TTF to WOFF Converter
Turn a TrueType TTF file into a WOFF web font, cutting 30–50 percent of the size with identical rendering.
Convert with this tool
or choose a file from your device — it is processed in this tab and never uploaded
Accepted: TTF (TrueType), including files with hinting and embedded bitmaps
Files stay on your device. There is no upload, no queue and no watermark, so a conversion works even with the network switched off after the page has loaded.
Supported formats & processing
| Accepted input | TTF (TrueType), including files with hinting and embedded bitmaps |
|---|---|
| Produced output | WOFF 1.0 web font |
| Processing | Web Audio API + canvas + native JavaScript encoders |
| Upload required | No — the file is read locally and never transmitted |
How to use this tool
- Add the .ttf fileThe name table, glyph count and embedding rights are shown first.
- Check the embedding rightsA font marked restricted should not be redistributed as a web font.
- ConvertTables are compressed individually and the container is assembled.
- Read the size figuresOriginal size, WOFF size and the compression ratio are reported.
- Use the @font-face snippetIt is included in the result card.
About this tool
A TTF file is an uncompressed SFNT container: a table directory followed by raw tables. Serving that to a browser works, but it transfers more bytes than necessary because outline data compresses very well. WOFF is the same data in a zlib-compressed wrapper that every browser has supported since 2012.
This converter builds the WOFF container properly. It preserves the SFNT flavour, copies each table's original checksum, compresses each table independently with zlib, pads each compressed table to a four-byte boundary as the specification requires, and writes the correct directory with both compressed and original lengths.
Features
- Correct WOFF 1.0 header with the original SFNT flavour preserved
- Per-table zlib compression with four-byte alignment padding
- Original table checksums carried across unchanged
- Embedding rights reported before you convert
- The name table is read so you can confirm the family
- Works offline after first load — no font ever leaves the browser
Frequently asked questions
Does WOFF need a fallback?
For browsers older than about 2012, yes. A common pattern is to list the WOFF source first and the original TTF second, so modern browsers take the smaller file.
What is the @font-face syntax?
@font-face { font-family: 'MyFont'; src: url('myfont.woff') format('woff'); font-display: swap; } — the font-display rule prevents invisible text while the font loads.
Should I subset the font first?
Yes if the page uses only Latin characters. A full CJK font can be several megabytes; subsetting to the characters actually used can reduce it by more than 95 percent. That step needs a command-line tool.
Does WOFF work in email clients?
No. Email clients are unreliable with web fonts. Convert text to an image or use a web-safe font stack for email.