Turn a WOFF web font into a TTF font file in a few clicks—upload your WOFF, convert to TTF, and download the result.
.woff file onto the page or click "+ Add Files" to pick one from disk. Parsing happens locally in your browser with opentype.js — the file never leaves your session, and batch uploads of several fonts at once are supported.kern/GPOS tables, and OpenType features are written back byte-equivalent to the source..ttf file with the original name table intact, so it shows up with the correct family and style in your OS font picker..ttf and choose Install, or drop it into C:\Windows\Fonts. On macOS Sonoma, double-click and click Install Font in Font Book. On Linux, drop into ~/.local/share/fonts and run fc-cache -f. The same .ttf works on all three.WOFF (Web Open Font Format) was standardised by the W3C in December 2012 as a compressed container for sfnt-based fonts so designers could ship type to browsers without inflating page weight. TrueType (.ttf) is the underlying outline format that operating systems and design apps actually install. Browsers happily render WOFF; desktop apps, font managers, and PDF embedders generally do not. Converting unwraps the zlib compression and gives you back the original TrueType data:
.ttf but refuse .woff. Designers who picked up a typeface from a site's @font-face CSS need the TTF to match the brand inside Figma desktop, InDesign, Illustrator, or Microsoft Word..woff is a non-starter; converting first keeps the printed brochure visually identical to the live site.A note on file size: removing the zlib layer typically grows the file 40–60% (a 60 KB WOFF becomes roughly 100 KB as TTF), because you are decompressing — not re-encoding. That growth is the whole point. For web delivery you would keep using WOFF or WOFF2; TTF is for the desktop side of the workflow.
| Property | WOFF | TTF |
|---|---|---|
| Year standardised | W3C Recommendation, December 2012 | Apple, 1991 (later co-developed with Microsoft) |
| Container vs format | Wrapper around sfnt (TTF/OTF) tables with zlib compression | Native sfnt outline format |
| Compression | zlib compress2() per table, mandated by spec |
None at file level |
| Typical size | 40–50% smaller than the equivalent TTF | Baseline |
| Browser support | Chrome 5+, Firefox 3.6+, Safari 5.1+, Edge, all current mobile browsers | Limited — older IE supports it, modern browsers prefer WOFF/WOFF2 |
| Desktop install | Not supported by Windows, macOS, or Linux installers | Native install on every desktop OS |
| Metadata block | Optional XML metadata for licence info, designer, vendor URL | Embedded in name table only |
| Best for | Serving fonts over HTTP / @font-face |
Desktop apps, print, PDF embedding, font editing |
| Successor | WOFF2 (Brotli, typically 20–30% smaller than WOFF, median ~24%) | Variable fonts (still TTF/OTF containers) |
WOFF and TTF carry the same glyph data — what changes is the outer envelope and how the data is compressed.
| Format | Compression | Primary use | Notes |
|---|---|---|---|
| TTF | None | Desktop install, print, PDF embed, font editing | Universal support across Windows, macOS, Linux since the 1990s |
| OTF | None | Same as TTF, but supports PostScript (CFF) outlines and richer typographic features | Preferred when the font uses advanced OpenType layout features |
| WOFF | zlib | Web @font-face delivery, broad browser support |
Roughly 40–50% smaller than TTF; reads as TTF/OTF once decompressed |
| WOFF2 | Brotli | Modern web delivery (Chrome 36+, Firefox 39+, Safari 12+) | Typically 20–30% smaller than WOFF (median ~24%); the current best practice for the web |
| EOT | LZ-style | Legacy Internet Explorer 4–8 only | Effectively obsolete; only ship if you still support IE ≤ 8 |
If your goal is web delivery, convert TTF → WOFF2. If your goal is desktop use, convert WOFF → TTF (this tool).
No. The WOFF specification requires zlib compression of the same sfnt table data that lives inside a TTF or OTF. Decompressing reproduces those tables exactly — glyph outlines, instructions (hinting), cmap, GPOS/GSUB, kern, and name are byte-identical to the source the foundry compressed. There is no re-encoding step and no quantisation; the resulting TTF renders pixel-for-pixel the same as the original master.
Because WOFF is compressed and TTF is not. A 60 KB WOFF typically expands to 100–150 KB as TTF — that is the zlib layer being removed, not data being added. The same glyph and hinting tables are inside both files; you are unwrapping a compressed archive, not transcoding. If keeping size down matters, stay on WOFF for web delivery and only convert to TTF when you need the desktop file.
Yes. After downloading, double-click the .ttf on Windows 11 and click Install (or right-click the file and choose Install for all users), or drag it into C:\Windows\Fonts. On macOS Sonoma, double-click to open in Font Book and click Install Font, or drag into the Font Book window. Linux distributions accept TTF in ~/.local/share/fonts (then run fc-cache -f). The same .ttf works on all three operating systems.
Format conversion does not change the font's licence. A typeface bought under a web-only licence (priced on monthly pageviews) generally does not grant desktop or app-embedding rights, and converting WOFF to TTF for installation may violate that EULA. A typeface bought under a desktop licence already entitles you to the TTF and the foundry will usually ship one. Self-hosted webfonts whose licence allows desktop use (Google Fonts, SIL Open Font Licence releases, fonts you commissioned) can be converted freely. When in doubt, check the licence file or contact the foundry — Adobe Fonts and Monotype, for example, explicitly disallow extracting webfonts for desktop use.
No — this tool is for WOFF (1.0, zlib-compressed). WOFF2 uses Brotli with a different table-transform step and needs a separate decoder. We have a dedicated WOFF2-to-TTF tool for that case. The file extension is the easiest tell: .woff is the format covered here, .woff2 is the newer Brotli variant.
Yes. Ligatures (liga, dlig), small caps (smcp), stylistic sets, kerning, and language-specific substitutions all live in the GSUB/GPOS tables, which are preserved verbatim. If your design app supports OpenType features on the resulting TTF, every feature the foundry shipped will still be available. Variable-font axes (weight, width, optical size) are also preserved — TTF and WOFF both wrap the same variable-font tables.
COLR/CPAL, SVG-in-OpenType)?Preserved. Colour-font tables (COLR, CPAL, sbix, CBDT/CBLC, SVG ) are pass-through data inside the sfnt structure that WOFF wraps. Apple Color Emoji, Microsoft Segoe UI Emoji-style multi-colour fonts, and SVG-in-OpenType colour fonts all round-trip cleanly. Whether your destination app renders those colour tables is a separate question — Adobe Illustrator added COLRv1 support in 2022, and Word for Microsoft 365 renders Microsoft's emoji palette.
No. The conversion runs entirely in your browser via opentype.js — your font file is parsed, decompressed, and re-serialised locally, and the download blob is generated client-side. There is no upload, no account, no watermark, no Pro tier hiding behind a paywall.
Drop several WOFF files onto the page and they queue up in the browser. Practical batch size is limited by your machine's RAM rather than any server cap — most users comfortably process a 20-font family in one go. There is no per-file size limit beyond what your browser can hold in memory.