Font Tools

OTF to TTF Converter

OpenType to TrueType needs cubic-to-quadratic outline conversion. This page explains why that cannot happen in a browser and how to do it properly.

Free · no account Runs in your browser Fonts Browser limits explained

Convert with this tool

Flagged as limited — read this firstPart of what this page is named after cannot be performed by a browser engine, and this tool will tell you so instead of pretending. The limitation is explained in full under Browser limits on this page below. Everything that can be done runs locally on your device.
Drag & Drop File Here

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

Accepted: OTF (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 inputOTF (for inspection)
    Produced outputInspection report and conversion guidance — no font file is produced
    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 OTF fileThe tool confirms it is OpenType/CFF and reports the table list.
    2. Check the glyph countTrueType's glyf table cannot address more than 65,535 glyphs.
    3. Read the recommended routeThe cubic-to-quadratic step is the crux; the tool names the right library.
    4. Convert on your desktopThe command is printed on this page.
    5. Verify with the metadata checkerConfirm the output has a glyf table and a plausible glyph count.

    About this tool

    The reverse conversion is harder, not easier. Going from CFF to TrueType means converting cubic Bézier outlines into quadratic ones, which cannot always be done exactly — a cubic curve may need several quadratic segments to approximate it within an acceptable error tolerance.

    A tool that does this must also rebuild the glyf table with correct point flags and repeat encoding, generate the loca index in the right format, recalculate the bounding box in the head table, and update every metric. That is a compiler, not a converter, and it does not run in a browser tab.

    This page gives you a complete inspection of your OTF source and the exact command-line route for the conversion, which takes seconds on a desktop.

    Features

    • Reports whether the source uses CFF or glyf outlines
    • Flags fonts with more than 65,535 glyphs that cannot be converted
    • Explains the cubic-to-quadratic approximation problem honestly
    • Gives the exact fontTools and FontForge routes
    • No misleading button and no empty download
    • Round-trip verification with the font metadata checker

    Browser limits on this page

    The part that is genuinely impossible in a browser

    Outlines. TrueType (TTF) and PostScript (OTF/CFF) are different glyph technologies, not two labels for the same data. Converting one into the other means re-drawing every glyph — a conversion driven by a rasteriser and curve fitter, not by a byte-level transformation. No browser API does that, and any page that offers it is either upsampling a picture or lying.

    Naming. A browser can read a font's internal tables but cannot re-issue the digital signature and embedding metadata a font vendor expects, so a repackaged file is not a licensed re-release of the original typeface.

    WOFF2. WOFF2 uses a pre-processing transform plus Brotli, and no browser exposes Brotli compression to script. Genuine WOFF2 output is not possible here without shipping a full Brotli+woff2 encoder in WebAssembly.

    What this page does instead: it reads and validates the file you supply, states precisely which conversion is not supported and why, and points you at the desktop route that works (fonttools, fontforge, or the Google woff2 tools).

    Frequently asked questions

    Why does the conversion need approximation?

    A quadratic Bézier curve has one control point; a cubic has two. Some cubic curves cannot be represented by a single quadratic curve, so the converter must split them into multiple segments and accept a small error. FontForge and fontTools let you set the tolerance.

    Which fonts cannot be converted at all?

    Fonts with more than 65,535 glyphs cannot use the TrueType glyf table, so large CJK fonts are usually kept in CFF form. Colour fonts and variable fonts add further complications.

    What command should I use?

    fontTools can convert with the cu2qu module: import the TTFont, convert the CFF glyph set to quadratic outlines with cu2qu, build a glyf table from the result, then save. In practice FontForge's Generate Fonts dialog with TrueType selected is faster for a one-off.

    Is TTF better than OTF for the web?

    For web delivery neither is ideal — use WOFF or WOFF2, which wrap whichever outlines you have. TrueType rasterises slightly faster at small sizes because quadratic curves are cheaper to evaluate, which is why many screen fonts use them.