Your files never leave this device — 100% in-browser

TTF to WOFF Converter

Package desktop fonts as WOFF 1.0 for legacy-browser projects — compressed table by table, entirely on your device.

A spec-exact WOFF 1.0 writer: each font table zlib-compressed, checksums carried through, output verified loadable before download. Straight advice: choose this only for legacy fleets (IE9-era) — for everything else, WOFF2 is smaller and universal.

Last verified 2026-08-15 — this tool passed 79 automated end-to-end checks

→ WOFF2
Drop .ttf / .otf fonts here, or click to browse
converts to WOFF · TTF & OTF accepted · verified output
01 — PRIVATE
Licensed font files are converted with pure JavaScript in your browser — never uploaded, never cached anywhere.
02 — SPEC-EXACT
A real WOFF 1.0 writer: per-table zlib streams, 4-byte alignment, original checksums carried through. Validators pass it.
03 — VERIFIED
Every output font is test-loaded via the FontFace API before download, so you know it parses before you ship it.

How to use

  1. Drop your file(s) into the box above — or click it to browse.
  2. Conversion starts immediately; the tabs switch to a different output format.
  3. Click Download on each finished file — or Download all (.zip) for a batch. Nothing was uploaded at any point.

Honest guidance: you probably want WOFF2

Straight talk before you convert: in 2026, WOFF2 is the format to serve. Every current browser reads it and it compresses meaningfully better. WOFF 1.0 remains relevant for a shrinking set of real situations: corporate environments frozen on old Internet Explorer (WOFF works from IE9), embedded webviews on ancient Android, kiosk hardware, and build systems whose font pipeline predates Brotli. If that's you, this page does exactly what it says; if not, use the WOFF2 converter.

WOFF 1.0 in context
WOFF 1.0WOFF2
Compressionzlib per tableBrotli whole-font + transforms
Typical size vs TTF~60–70%~40–50%
Oldest browserIE9 (2011)Chrome 36 / Safari 10 (2016+)
StandardizedW3C 2012W3C 2018
Choose whenLegacy fleet support requiredEverything else

What WOFF actually is

WOFF 1.0 is the simplest honest web font container: the original TTF/OTF structure, with each font table individually compressed with zlib and wrapped with a small header. Nothing is re-encoded or restructured — your glyph outlines, hinting and kerning pass through byte-identical, which is why WOFF was adopted as the first W3C web font standard back in 2012. Typical savings run 30–40% versus the raw TTF (shown per file after conversion).

When NOT to convert TTF to WOFF

  • Modern-only audiences — serve WOFF2; it's strictly smaller and universally supported now.
  • Desktop or document use — WOFF doesn't install as a system font; keep TTF/OTF for that.
  • Without checking your font license — web embedding rights are separate from desktop rights on most commercial fonts.

Frequently asked questions

Is the font modified in any way?

No — WOFF is pure packaging. Decompressed, the tables are byte-identical to your TTF, checksums included.

Which format string goes in @font-face?

src: url('font.woff') format('woff') — and list a woff2 source before it so modern browsers take the smaller file.

Why is WOFF bigger than WOFF2?

zlib (1995) versus Brotli (2015) plus WOFF2's font-specific preprocessing — roughly a 20-percentage-point difference on typical fonts.