Font Tools

TTF to WOFF Converter

Turn a TrueType TTF file into a WOFF web font, cutting 30–50 percent of the size with identical rendering.

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 (TrueType), including files with hinting and embedded bitmaps

    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 (TrueType), including files with hinting and embedded bitmaps
    Produced outputWOFF 1.0 web font
    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 fileThe name table, glyph count and embedding rights are shown first.
    2. Check the embedding rightsA font marked restricted should not be redistributed as a web font.
    3. ConvertTables are compressed individually and the container is assembled.
    4. Read the size figuresOriginal size, WOFF size and the compression ratio are reported.
    5. Use the @font-face snippetIt is included in the result card.

    About this tool

    A TTF file is an uncompressed SFNT container: a table directory followed by raw tables. Serving that to a browser works, but it transfers more bytes than necessary because outline data compresses very well. WOFF is the same data in a zlib-compressed wrapper that every browser has supported since 2012.

    This converter builds the WOFF container properly. It preserves the SFNT flavour, copies each table's original checksum, compresses each table independently with zlib, pads each compressed table to a four-byte boundary as the specification requires, and writes the correct directory with both compressed and original lengths.

    Features

    • Correct WOFF 1.0 header with the original SFNT flavour preserved
    • Per-table zlib compression with four-byte alignment padding
    • Original table checksums carried across unchanged
    • Embedding rights reported before you convert
    • The name table is read so you can confirm the family
    • Works offline after first load — no font ever leaves the browser

    Frequently asked questions

    Does WOFF need a fallback?

    For browsers older than about 2012, yes. A common pattern is to list the WOFF source first and the original TTF second, so modern browsers take the smaller file.

    What is the @font-face syntax?

    @font-face { font-family: 'MyFont'; src: url('myfont.woff') format('woff'); font-display: swap; } — the font-display rule prevents invisible text while the font loads.

    Should I subset the font first?

    Yes if the page uses only Latin characters. A full CJK font can be several megabytes; subsetting to the characters actually used can reduce it by more than 95 percent. That step needs a command-line tool.

    Does WOFF work in email clients?

    No. Email clients are unreliable with web fonts. Convert text to an image or use a web-safe font stack for email.