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.