Understanding Font Formats

A font file can serve different purposes. It may hold an editable design, carry work between font editors, or provide the finished data an application uses to display text. These purposes overlap, but they do not require the same information.

The distinction matters as soon as you open a font for editing. A finished font may contain everything needed to render its text without containing all the material used to develop it. FontLab therefore distinguishes saving your working font from producing files for other uses.

Opening, Saving, and Exporting

Opening reads a supported font file into FontLab. The file may be a FontLab working file, a source from another editor, or a production font. You use the opening operation in each case; there is no separate font-import procedure that you must learn for every category.

Opening creates a working font in memory. It does not, by itself, rewrite the original file or create a saved FontLab copy. The working font becomes the object you inspect and edit.

Saving preserves that work in a FontLab native format. A native format is a working format designed for FontLab's own font data. The principal formats used throughout this manual are FontLab Compact (.vfc) and FontLab JSON (.vfj). VFC and VFJ are lossless for the editable font-design data needed to continue developing the font. VFC is compact and binary; VFJ is readable JSON text. Save preferences determine which additional session and workspace information is included.

Exporting produces output for a chosen destination or purpose. That may be a font for installation, a web font, or a file for use in another font editor. The target format determines which information can be represented. Data needed only during design may be omitted or converted.

For example, opening a .ttf file and saving your work as .vfc gives you a FontLab working file. It does not turn the original .ttf into that working file. When you later need a revised .ttf, you produce it through export. Keeping the working file gives you a place to continue editing without reconstructing the project from its output each time.

Export can also produce native-format output. A complete-source VFC or VFJ export can preserve the working font, while an export configured for a particular subset or design has a different scope. The fact that a file ends in .vfj is not, by itself, a guarantee that it contains every part of the source project.

For routine work, save the native file regularly. Export when you need a deliverable or a transfer to another tool. For the steps and choices involved, see The Export Process.

Some files carry only part of a font's information. AFM files contain font metrics, and FEA files contain OpenType feature code. Their import and export operations supplement a font; they do not replace saving the complete working font.

Font Format Types

Fonts contain structured data that text software interprets. For development, it is useful to distinguish the editable source from the production font delivered to that software. FontLab's formats fall into three broad groups: native working formats, interchange and compatibility formats, and production formats.

Native working formats

VFC stores the working font in a compact binary form, suited to everyday saving and reopening. VFJ represents the font data as JSON text, which can be inspected and processed by external tools. Both are intended to preserve FontLab's editable font data and can be used across macOS and Windows.

FontLab also offers the FontLab Project format, VFJP. The procedures in this Part use VFC or VFJ; the format overview includes VFJP so it can be recognized among the available choices.

Format Extension Open Save Export
FontLab Compact .vfc Yes Yes Yes
FontLab JSON .vfj Yes Yes Yes
FontLab Project .vfjp Yes Yes Yes

Interchange and compatibility formats

These formats let you work with material from other font tools or prepare material for them. They may preserve substantial design information, but they do not necessarily represent every FontLab-specific property. A format's ability to store a drawing does not establish that it can store all the relationships used to construct that drawing.

Format Extension Open Save Export
Unified Font Object .ufo Yes No Yes
Compressed UFO .ufoz Yes No Yes
DesignSpace with UFO sources .designspace and associated .ufo packages Yes No Yes
Extended Font Object .xfo Yes No Not offered as a standard profile
Glyphs .glyphs Yes No Yes
Glyphs Package .glyphspackage Yes No Yes
FontLab Studio 5 / FontLab Classic .vfb Yes No Yes
Fontographer .fog Yes No No
BitFonter PhotoFont .phf Yes No No
FontForge Spline Font Database .sfd Yes No No
Ikarus .ik Yes No No

“Save” in these tables means saving back to that format with the font-save commands. After opening an interchange file, you can save the working font in a native format even when the table says No in its Save column. XFO is a compatibility format; use the documented export formats for a planned exchange with another tool.

Production formats

Production fonts are intended for use by text applications, operating systems, browsers, or other rendering software. The category includes older formats as well as current ones. Inclusion here describes FontLab's file operations, not a guarantee that every modern operating system can install or use a particular legacy format.

Format Extension Open Save Export
OpenType with PostScript outlines .otf Yes No Yes
OpenType with TrueType outlines .ttf Yes No Yes
Variable OpenType with TrueType outlines .ttf Yes No Yes
Variable OpenType with PostScript outlines .otf Yes No Yes
Color OpenType .otf or .ttf Yes No Yes
TrueType/OpenType collection .ttc or .otc Yes No No
WOFF .woff Yes No Yes
WOFF2 .woff2 Yes No Yes
Embedded OpenType .eot Yes No Yes
Windows PostScript Type 1 .pfb Yes No Yes
Mac PostScript Type 1 Suitcase-based files Yes No No
BDF bitmap font .bdf Yes No No

Several different kinds of font share an extension. An .otf or .ttf file can contain capabilities that are not visible in its filename.