# ttLib: Read and write OpenType and TrueType fonts

## Overview:

Most users of the `fontTools` library will be using it to generate or manipulate OpenType and TrueType fonts. (FontTools initially only supported TrueType fonts, gaining OpenType support in version 2.0, and so uses the `tt` prefix to refer to both kinds of font. Because of this we will refer to both as “TrueType fonts” unless we need to make a distinction.)

The main entry point for such operations is the `fontTools.ttLib.ttFont` module, but other modules also provide useful functionality for handling OpenType fonts:

- ttFont: Read and write font contents

`ttLib` supports fonts with TrueType-flavored glyphs (i.e., with a `glyf` table), with PostScript-flavored glyphs (i.e., `CFF` or `CFF2` tables), and with all of the glyph formats used for color fonts (`CBDT`, `COLR`, `sbix`, and `SVG`). Static and variable fonts are both supported.

## Command-line utilities

`ttLib` includes two modules that provide command-line operations:

- removeOverlaps: Tools to remove overlapping contours in glyphs
- scaleUpem: Tools to change the units-per-Em value in a font

## Supporting modules

It also contains helper modules that enable lower-level functionality. In most cases, users will not need to access these modules directly:

- ttCollection: Access fonts within a TrueType/OpenType Collection
- ttGlyphSet: GlyphSets returned by a TTFont object
- macUtils: Access fonts in Mac file formats
- reorderGlyphs: Functions to reorder the glyphs in a font
- sfnt: Read and write the SFNT file format
- standardGlyphOrder: Interface with the Standard Glyph Order
- tables: Access TrueType/OpenType tables
- woff2: Read and write the WOFF2 font file format