OTF to WOFF

WOFF 1.0 is a lossless wrapper: it stores each table of your OpenType font zlib-compressed and changes nothing inside it. An .otf with CFF outlines therefore becomes a .woff with exactly the same CFF outlines, the same PostScript hints and the same name records. This page does the wrapping in your browser and then reads its own output back, comparing it with the original, before the download appears.

Drop OpenType (.otf) files or folders 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.

When WOFF 1.0 is the right target

A platform, theme or email builder that accepts .woff uploads but not .woff2, or a fallback source in @font-face for an older browser or embedded web view.

Anywhere else, prefer OTF to WOFF2: it is smaller for the same font and is supported by every current browser.

The OpenType font stays OpenType

The extension of the output says WOFF, but the font inside is still the OpenType/CFF font you started with. Unwrapping the .woff later, on the WOFF to TTF page or by any other decoder, gives back an .otf file that matches the original table for table.

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 OTF to WOFF
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.
Outline hinting (PostScript hints in CFF, or TrueType bytecode) keptPreserved unchanged. CFF outlines are not converted to TrueType, so their hints stay with them.
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 WOFF is a different layout.

When it does not work

A design tool will not import the .woff file.

Why: Most desktop design applications install fonts from .otf or .ttf files and do not read web-font containers at all.

Fix: Keep using the .otf for design work. The .woff is for browsers and web platforms only.

The browser shows a fallback font instead of the WOFF.

Why: The server sends the file with the wrong MIME type, or the font is requested from another origin without an Access-Control-Allow-Origin header.

Fix: Serve .woff as font/woff and allow cross-origin requests for the font if it lives on a CDN or a different subdomain.

The result notes say the DSIG signature will no longer verify.

Why: The font was digitally signed, and the signature covers the original byte layout. Any repackaging, WOFF included, changes that layout.

Fix: Browsers ignore DSIG, so this does not affect rendering. Keep the signed original if you need the signature itself.

Related

  • OTF to WOFF2

    Compress OpenType (.otf) fonts to WOFF2 in your browser with the reference Google encoder. CFF outlines and PostScript hints are kept as they are, and nothing is uploaded.

    Open: OTF to WOFF2
  • TTF to WOFF

    Convert TTF or OTF fonts to WOFF 1.0 in your browser. Every table is zlib-compressed and kept intact, the result is verified against the input, and nothing is uploaded.

    Open: TTF to WOFF
  • 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: Web-font pack
  • Inspector

    Read everything inside a font file in your browser: family and PostScript names, version, copyright and licence text, OS/2 embedding permissions, variation axes, colour tables and the full table directory.

    Open: Inspector