# OTF to TTF Converter

> Convert OpenType (.otf) fonts to TrueType (.ttf) format.

OTF to TTF Converter converts font files between TTF, OTF, WOFF, WOFF2, and Base64 CSS definitions locally in your web browser. Font data processing runs entirely on your device without transmitting files over the network.

**URL:** https://convertto.tech/t/otf-to-ttf
**Category:** Developer Tools (https://convertto.tech/c/developer-tools)
**Privacy:** Runs entirely in the browser; no upload
**Cost:** Free, no sign-up
**Last updated:** 2026-08-01

## Key facts

- **Privacy:** Runs entirely in your browser — nothing is uploaded
- **Cost:** Free, unlimited, no sign-up

## OTF and TTF are both OpenType

An `.otf` file and a `.ttf` file are, in almost every case, the same kind of file. Both use the sfnt container the OpenType specification describes: a header, a table directory, and a set of tables identified by four-character tags such as `cmap`, `head`, `name` and `GSUB`. What differs is the table holding the glyph outlines. A font with TrueType outlines keeps them in `glyf` and `loca` and opens with the version tag `0x00010000`. A font with PostScript outlines keeps them in a `CFF ` or `CFF2` table and opens with the tag `OTTO`. Convention names the first `.ttf` and the second `.otf`, which is why converting OpenType to TrueType is a real operation and not a rename.

The rasteriser decides what a file is by reading that version tag, not by reading the extension. A CFF font renamed to `.ttf` still works on Windows, macOS and Linux, and it is still a CFF font. If a tool rejected your file for being the wrong type, renaming it will not fix anything.

## What actually changes in the conversion

TrueType outlines are quadratic Bézier curves with one off-curve control point per segment. PostScript outlines are cubic, with two. A cubic curve can be approximated by a chain of quadratic segments to any tolerance you pick, but it cannot generally be reproduced exactly, so a real OTF to TTF conversion redraws every curve in the font. At text sizes the difference is invisible. At poster sizes, or when the outlines feed a cutting plotter, an engraver or a 3D extrusion, the approximation error is something you can measure.

### What survives and what does not

- **Glyph shapes** survive as an approximation. Good converters fit quadratics within a tolerance you cannot see; crude ones produce visible kinks at high contrast joins and on tight curves.
- **Character mapping** survives. The `cmap` table is independent of the outline format and is copied across.
- **Layout features** survive if the converter copies `GSUB`, `GPOS` and `GDEF` across. Ligatures, kerning pairs, small caps, stylistic sets and old-style figures all live in those tables. A converter that rebuilds a font from outlines alone silently drops every one of them.
- **Hinting** does not survive. TrueType hinting is bytecode held in `fpgm`, `prep`, `cvt ` and in per-glyph instructions; CFF hinting is declared inside the charstrings and interpreted by the rasteriser. Neither translates into the other, so a converted font arrives unhinted and depends on whatever autohinting the renderer applies.
- **Variable axes** do not survive a conversion that flattens to a single instance. A variable font stores its design space in `fvar` plus `gvar` for TrueType outlines or `CFF2` for PostScript ones. Export one weight and the other weights are gone, not compressed.
- **Vertical metrics** can shift. `hhea`, `OS/2` and `head` each carry ascender, descender and line-gap values, and a rebuilt font that recalculates them instead of copying them will change line spacing in existing layouts.

| Format | Outline data | Compression | Where it belongs |
| --- | --- | --- | --- |
| `.ttf` TrueType | Quadratic curves in the `glyf` and `loca` tables | None | Desktop installation, Android build pipelines, tools that only read `glyf` |
| `.otf` OpenType with PostScript outlines | Cubic curves in a `CFF ` or `CFF2` table | None | Desktop installation, print and design applications |
| `.woff` WOFF 1.0 | Whichever of the two the wrapped font already used | zlib, applied to each table separately | A fallback source for browsers too old for WOFF2 |
| `.woff2` WOFF 2.0 | Whichever of the two the wrapped font already used | Brotli over the whole font, after a reversible transform of `glyf`, `loca` and `hmtx` | The format to actually serve on the web |
| `.eot` Embedded OpenType | Either, wrapped in a Microsoft-specific container | Optional MicroType Express | Internet Explorer 8 and earlier. A W3C Member Submission that never became a standard |
| `.ttc` / `.otc` collection | Either, with tables shared between several faces | None on its own, though WOFF2 can wrap a collection | Shipping a whole family in one file, common for CJK fonts |

*TTF and OTF are two flavours of the same sfnt container. WOFF and WOFF2 are packaging placed around one of them, not a third kind of outline.*

> **Check the licence before you convert** — Converting a font modifies it, and plenty of commercial licences forbid exactly that. A licence that allows you to install a font on your own machine very often does not allow you to embed it in a web page, redistribute it, or hand a converted copy to anyone else. The OpenType `OS/2` table carries an `fsType` field in which the foundry declares its embedding permission, with values covering installable, restricted licence, preview and print, and editable embedding, and a converter that rebuilds the font can drop or flatten that declaration. Read the EULA first, and use the foundry web kit when one is offered.

## Do you actually need TTF?

Often not. Windows and macOS have installed both flavours for two decades, so "my system will not take an OTF" is almost never the real problem. For the web, neither raw format is the right answer: serve [WOFF2](https://convertto.tech/t/ttf-to-woff2) and keep the desktop file as the source. The conversions that genuinely need `glyf` outlines are narrower than the search volume suggests.

- Android resource pipelines and some game engines that only parse `glyf`.
- Embedded and industrial renderers, label printers and older firmware font loaders.
- Editors and plugins that read TrueType outlines only, including a number of vector and CNC toolchains.
- Hinting work, since TrueType bytecode hinting has no CFF equivalent to edit.

## Related font conversions

- [TTF to WOFF2](https://convertto.tech/t/ttf-to-woff2) for the file you should be serving to browsers.
- [TTF to WOFF](https://convertto.tech/t/ttf-to-woff) for the older fallback source.
- [WOFF to TTF](https://convertto.tech/t/woff-to-ttf) and [WOFF2 to TTF](https://convertto.tech/t/woff2-to-ttf) for going the other way.
- [Font to Base64](https://convertto.tech/t/font-to-base64) to inline a small face directly into CSS.
- [Font availability checker](https://convertto.tech/t/font-availability-checker) to see which faces a visitor already has locally.
- Format hubs: [TTF](https://convertto.tech/f/ttf), [OTF](https://convertto.tech/f/otf), [WOFF](https://convertto.tech/f/woff) and [WOFF2](https://convertto.tech/f/woff2).

## How to use

1. Select your font file — the file stays on your device and is never uploaded.
2. Press Run, then download the result when it is ready.

## FAQ

### Is my font file uploaded anywhere?

No, font conversion happens entirely in your browser using JavaScript.

### What is the difference between OTF and TTF?

Both are OpenType fonts using the same sfnt container. A TTF stores glyph outlines as quadratic curves in the glyf and loca tables; an OTF stores them as cubic curves in a CFF or CFF2 table. The extension reflects which outline format the file uses, and the rasteriser decides by reading the version tag inside the file rather than the extension.

### Is converting a font lossless?

Unwrapping WOFF or WOFF2 back to sfnt is defined to be reversible, so the table data comes back intact. Converting between outline formats, such as OTF to TTF, is not: cubic curves have to be approximated by quadratics, and hinting and variable-font axes do not carry over.

### Am I allowed to convert a commercial font?

Often not. Many font licences forbid modification, web embedding or redistribution, and converting a font is a modification. The OS/2 table carries an fsType field in which the foundry declares its embedding permission. Check the EULA before converting a font you did not make.

### Can I convert an EOT or TTC file here?

No. This tool accepts TTF, OTF, WOFF and WOFF2. EOT is a retired Microsoft container for Internet Explorer 8 and earlier, and TTC is a collection holding several faces in one file, which needs a different unpacking step.

## Sources

- [OpenType specification](https://learn.microsoft.com/en-us/typography/opentype/spec/) — Microsoft
- [OpenType font file structure (sfnt)](https://learn.microsoft.com/en-us/typography/opentype/spec/otff) — Microsoft
- [WOFF File Format 1.0](https://www.w3.org/TR/WOFF/) — W3C
- [WOFF File Format 2.0](https://www.w3.org/TR/WOFF2/) — W3C
- [OpenType OS/2 table (fsType embedding permissions)](https://learn.microsoft.com/en-us/typography/opentype/spec/os2) — Microsoft
- [OpenType glyf table](https://learn.microsoft.com/en-us/typography/opentype/spec/glyf) — Microsoft
- [OpenType CFF table](https://learn.microsoft.com/en-us/typography/opentype/spec/cff) — Microsoft
- [OpenType variable fonts overview](https://learn.microsoft.com/en-us/typography/opentype/spec/otvaroverview) — Microsoft

## Related tools

- [Font to Base64 & CSS Generator](https://convertto.tech/t/font-to-base64): Convert font files directly into CSS @font-face data URIs.
- [TTF to WOFF Converter](https://convertto.tech/t/ttf-to-woff): Convert TrueType (.ttf) fonts to Web Open Font Format (.woff).
- [TTF to WOFF2 Converter](https://convertto.tech/t/ttf-to-woff2): Convert TrueType (.ttf) fonts to optimized WOFF2 web fonts.
- [WOFF to TTF Converter](https://convertto.tech/t/woff-to-ttf): Convert WOFF web fonts back to desktop TrueType (.ttf) fonts.
- [WOFF2 to TTF Converter](https://convertto.tech/t/woff2-to-ttf): Decompress WOFF2 fonts back to TTF format.
- [7Z to ZIP Converter](https://convertto.tech/t/7z-to-zip): Convert 7-Zip (.7z) archives into universal ZIP format.
- [GZIP to ZIP Converter](https://convertto.tech/t/gzip-to-zip): Convert GZ files into standard ZIP archives.
- [RAR to ZIP Converter](https://convertto.tech/t/rar-to-zip): Extract RAR archives and repackage contents into standard ZIP format.
