TTF to WOFF2

WOFF2 is the format to serve on the web: it is the only font format every current browser supports with Brotli compression, and it typically lands between 25% and 50% of the size of the TTF it came from. This page runs the reference Google WOFF2 encoder locally on your file, then decodes its own output and compares coverage, names and embedding flags against the input before offering the download.

Drop TrueType or OpenType files here, or choose them.

Everything runs in this tab. Detecting device capabilities…

Files are read and processed in this browser tab. Nothing is uploaded — the page’s Content-Security-Policy blocks connections to any other origin.

Compression is not subsetting

WOFF2 makes the same font smaller. It does not remove glyphs. If your TTF covers 3,000 characters and you serve Latin text, the WOFF2 will still carry all 3,000 — compressed, but downloaded in full by every visitor.

Subsetting is where the real size win is. The subsetter drops the glyphs you will never render, and the web-font pack combines both steps and writes the matching unicode-range CSS.

Before you deploy the result

Check the OS/2 embedding permissions in the inspector. A font whose fsType is set to Restricted License Embedding must not be served from your site without written permission from the foundry, no matter what format you convert it to.

Many free-for-personal-use fonts forbid web embedding entirely. Conversion is a technical operation; it grants you nothing.

What survives this conversion

Every row below is checked automatically against your own file after conversion. If any check fails the output is discarded rather than offered for download.

Conversion compatibility for TTF to WOFF2
PropertyOutcome
Glyph outlines keptByte-identical. The outline tables are copied, not redrawn.
Character map (cmap) keptEvery code point keeps the same glyph id. Verified after every conversion.
Family, version, copyright and licence strings keptPreserved exactly and re-checked against the input.
OS/2 embedding permissions (fsType) keptPreserved. Glyph Batch never clears a vendor restriction bit.
OpenType layout (GSUB, GPOS, GDEF, kern) keptPreserved unchanged, so ligatures and kerning behave identically.
TrueType hinting (fpgm, prep, cvt, gasp) keptPreserved unchanged.
Variable font tables (fvar, gvar, avar, HVAR, STAT) keptPreserved unchanged; the output stays variable.
Colour tables (COLR, CPAL, sbix, CBDT, SVG) keptPreserved unchanged.
DSIG digital signature partialKept in the file but no longer valid: the signature covers the original byte layout, and WOFF2 is a different layout.

When it does not work

"WOFF2 encoding failed" on a font that opens fine elsewhere.

Why: The reference encoder refuses fonts whose "glyf"/"loca" tables it cannot transform — usually a loca table that disagrees with the glyph count, or overlapping table data.

Fix: Run the file through the inspector. If the outline check reports failures, the source font is damaged and needs re-exporting.

The WOFF2 is barely smaller than the TTF.

Why: The font is mostly bitmap or colour data (sbix, CBDT), which is already compressed and does not shrink further.

Fix: Expect little gain on colour fonts. Subsetting still helps if you need only part of the glyph set.

The font loads locally but not on your production site.

Why: Almost always a MIME type or CORS problem rather than the font. WOFF2 should be served as font/woff2, and cross-origin font requests need Access-Control-Allow-Origin.

Fix: The generated @font-face snippet in the web-font pack includes the correct format() keyword; the server configuration is the remaining half.

Related

  • Web-font pack

    Turn a font into a deployable web-font pack in your browser: WOFF2 and WOFF files, a correct @font-face rule with unicode-range, a preload snippet and a manifest, all in one ZIP.

    Open
  • Subsetter

    Subset fonts in your browser with HarfBuzz hb-subset. Keep pasted text, whole Unicode blocks or standard web ranges. Layout closure is preserved and licence strings are kept.

    Open
  • WOFF2 to TTF

    Decode WOFF2 web fonts back to installable TTF/OTF in your browser. Uses the reference Google WOFF2 decoder, preserves every table, and verifies the result. Nothing is uploaded.

    Open