Font Tools

Font Converter

Repackage TTF and OTF fonts into the WOFF web format with real per-table zlib compression — and a clear account of what cannot be done in a browser.

Free · no account Runs in your browser Fonts

Convert with this tool

Drag & Drop File Here

or choose a file from your device — it is processed in this tab and never uploaded

Accepted: TTF, OTF (uncompressed SFNT), and reads WOFF / WOFF2 for inspection

    Ready.

    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 inputTTF, OTF (uncompressed SFNT), and reads WOFF / WOFF2 for inspection
    Produced outputWOFF 1.0 web font with per-table zlib compression
    ProcessingWeb Audio API + canvas + native JavaScript encoders
    Upload requiredNo — the file is read locally and never transmitted

    How to use this tool

    1. Add the TTF or OTF fileThe table directory and the name table are read and displayed.
    2. Check the reported formatThe tool confirms whether the source is TrueType or OpenType/CFF before converting.
    3. ConvertEach table is compressed with zlib and the WOFF header is assembled.
    4. Read the compression figuresThe result card reports the original size, the WOFF size and the compression ratio.
    5. Download and reference it in CSSThe result card includes the @font-face snippet to use.

    About this tool

    Web fonts ship in three containers. TTF and OTF are the raw SFNT formats that desktop software uses; WOFF wraps the same tables in a zlib-compressed container that browsers load more quickly; WOFF2 compresses further with Brotli and a glyph-stream transform.

    This converter performs the TTF/OTF to WOFF transformation properly: it reads the SFNT table directory, compresses each table individually with the browser's own CompressionStream implementation of zlib, and writes a correct WOFF header with the right offsets, compressed lengths and original checksums. The font outlines are untouched — only the container is rebuilt, which is exactly what desktop tools do.

    Converting between TrueType and OpenType outlines (TTF ↔ OTF) and producing WOFF2 are genuinely not possible in a browser, and this page says so rather than failing silently.

    Features

    • Real WOFF 1.0 container writing with correct table offsets
    • Per-table zlib compression through the browser's CompressionStream
    • Preserves original table checksums and the SFNT flavour field
    • Full table directory and name table reported before conversion
    • Explicit, honest limits on TTF ↔ OTF and WOFF2 conversion
    • The font never leaves your device

    Frequently asked questions

    Why can a browser not convert TTF to OTF?

    TrueType uses quadratic Bézier curves and OpenType/CFF uses cubic ones. Converting between them means rebuilding every glyph outline with a different control-point structure, and re-generating the CFF charstring program or the glyf/loca tables. That requires a font compiler such as FontForge or fontTools, which cannot run in a browser tab.

    Why can a browser not produce WOFF2?

    WOFF2 applies a Brotli compression pass plus a transform that rearranges the glyf and loca tables. Browsers expose Brotli only for HTTP transfer, not as a JavaScript API, and the table transform is not available at all. Use fontTools or the Google woff2 tools on the command line.

    Will the WOFF file render identically?

    Yes. WOFF stores the same tables as the source SFNT file, only compressed. The glyph data, metrics, kerning and hinting are byte-identical after decompression.

    How much smaller is WOFF than TTF?

    Typically 30–50 percent, depending on the font. Fonts with large glyf tables compress well because outline data has a lot of redundancy.