Font Formats, File Types and Q&A

Font Format Types
Font File Formats (by format name)
File Types (by file extension)

Font Format Types

Type 0 is a "composite" font format - as described in the PostScript Language Reference Manual, 2nd Edition. A composite font is composed of a high-level font that references multiple descendent fonts.

The OCF (Original Composite Font) format (which uses a Type 0 file structure) was Adobe's first effort to implement a format for fonts with large character sets. Adobe then developed the CID-keyed font file format which was designed to offer better performance and a more flexible architecture for addressing the complex Asian-language encoding and character set issues. The OCF font format is not documented or supported, but the CID-keyed format is both fully documented and supported.

Type 1 is the font format for single-byte Roman fonts for use with Adobe Type Manager software and with PostScript printers. Type 1 fonts use a specialized subset of the PostScript language which is optimized for better performance and a more compact representation. The Type 1 operator set includes hint information which helps font rasterizers create more accurate bitmaps for smaller sizes and lower resolutions. For more information, see Adobe Type 1 Font Format, published by Addison-Wesley (Always order by the ISBN number - ISBN # 0-201-57044-0, to avoid confusion over which edition is desired), or the PDF version Adobe Type 1 Font Format (PDF: 445 KB).

Type 2 is a charstring format that offers a compact representation of the character description procedures in an outline font file. The format is designed to be used with the Compact Font Format (CFF). The CFF/Type2 format is the basis for Type 1 OpenType fonts, and is used for embedding fonts in Acrobat 3.0 PDF files (PDF format version 1.2).

For an overview of the Type 2 format, see the CFF/Type2 Q & A. For more information, see Adobe Technical Note 5176, The Compact Font Format Specification, (PDF: 251 KB) and Adobe Technical Note 5177, Type 2 Charstring Format (PDF: 212 KB).

Type 3 fonts can use the full PostScript computer language to express a font. The format is described in the PostScript Language Reference Manual, 2nd Edition; Addison-Wesley (ISBN #0-201-18127-4).

Because Type 3 fonts can use the full PostScript language, they can do some things that Type 1 fonts cannot do, such as specify shading, color, and fill patterns. The drawback is that Type 3 fonts are not optimized for size or performance like Type 1 fonts are, and there is no built-in method for adding hinting information. Also, Type 3 fonts cannot be used with Adobe Type Manager software because it is not a PostScript language interpreter. Type 3 fonts use a general "graphics fill" rasterizer; the result is that imaged characters look slightly bolder than they would if expressed as a Type 1 font.

Type 3 fonts are mainly useful only for special purpose or very complex fonts (such as complex logos or converted EPS art files). The format also provides a way to represent bitmap characters. For example, PostScript printer drivers for Windows can convert an outline font to a bitmap fonts and download the result as a Type 3 font. Also, some applications build Type 3 bitmap fonts as a means to print documents from mainframe computers (which only use proprietary format bitmap fonts) to PostScript-language printers.

Type 4 is a format that was used to make fonts for printer font cartridges and for permanent storage on a printer's hard disk. The advantage of the format is that PostScript interpreters are able to read into printer memory only those characters needed for the current print job, thus saving memory (printer VM). With all Level 2 PostScript printers, the same capability exists for Type 1 fonts, thus making the Type 4 format essentially obsolete.

Type 4 refers to the font file organization; the character descriptions are expressed in the Type 1 format. The format is proprietary and is not documented.

Type 5 is similar to the Type 4 format but is used for fonts stored in the ROMs of a PostScript printer. Type 5 refers to the font file organization; the character descriptions are expressed in the Type 1 format.

Type 32 is used for downloading bitmap fonts to PostScript interpreters with version number 2016 or greater. The bitmap characters are transferred directly into the interpreter's font cache, thus saving space in the printer's memory.

Type 42 fonts consist of a PostScript language "wrapper" around a TrueType font. A Type 42 font is usually generated by a printer driver to download TrueType fonts to a PostScript printer that includes a TrueType rasterizer. By this method the TrueType font is interpreted directly, which provides the most accurate results. See Adobe Technical Note 5012, The Type 42 Font Format Specification (PDF: 87 KB).

Font File Formats (by format name)

OpenType Font Format is being developed jointly by Adobe and Microsoft. The format features enhanced ease-of-use and advanced typographic features for users, with additional benefits for font and software developers. See the OpenType page for more information.

CID-Keyed font format was designed for high performance and flexibility for fonts with large character sets. The CID format is a font file organization format; character descriptions (charstrings) for the CID-keyed format may use either the Type 1 format for standard CID-keyed fonts, or Type 2 for CID-keyed OpenType fonts. See CID-Keyed Fonts.

CFF is the Compact Font Format designed primarily for use with the Type 2 charstring format. The CFF format forms the basis for the Type 1 OpenType font format, and is used for embedding fonts in Acrobat 3.0 PDF files (PDF format version 1.2).

For an overview of the CFF format, see the CFF/Type2 Q & A. For the specfication, see The Compact Font Format Specification (PDF: 251 KB)

Font File Types (by file extension)

.pfb (Printer Font Binary) files contain a binary compressed outline font for use on a user's Windows system.

.pfm (Printer Font Metrics) files contain font metric information used by applications for laying out lines of text in a document. They also specify the Windows font menu name, kerning pair data, and a variety of other font-level information. Adobe publishes Technical Note 5178, Building PFM Files for PostScript-Language CJK Fonts (PDF: 143 KB) which explains how to generate PFM files for CID-keyed fonts. However, that document is not a general PFM specification - the specification is available from Microsoft, through their developer support organization.

.afm (Adobe Font Metrics) files contain general font information and font metrics information. AFM files are generally only used directly in UNIX environments.

.inf (INFormation) files contain application-specific information in plain ASCII text; such as font menu names for Windows and DOS-based applications such as Microsoft Word(R), Corel's Ventura Publisher(R), and WordPerfect(R). The files are included in all Adobe font products (i.e. those contain PFB files) for Windows. When a font is installed in Windows, the ATM Installer software takes the AFM and the INF file as input and generates the required PFM file at installation time. The AFM and INF files are not installed in the user's system.

.pfa (Printer Font Ascii) files use the format specified by The Adobe Type 1 Font Format (PDF: 445 KB); (also: Addison-Wesley, 1991, ISBN # 0-201-57044-0). This is the form of the font used by PostScript-language interpreters, and is also the preferred format for Type 1 fonts used in UNIX environments. PFA font files are not shipped in font product packages; they are created at installation time.

.mmm files are used for the metric data needed by multiple master fonts for the Windows environment.

Q & A

Are multiple master fonts and CID-keyed fonts considered Type 1 fonts?
Yes, the multiple master and CID-keyed font formats are considered extensions to the Type 1 format. Characters are still expressed using standard Type 1 operators, but the file organization is different.

I have a Type 1 font with a .pfb file extension to the file that has six characters before the standard Type 1 font dictionary begins. What are those bytes for?
Those six characters are a segment header (actually one of several in the file) that is part of the PFB format.

Is a Type 1 font on a user's computer in the same format as that which is downloaded to a PostScript printer?
Not for the Macintosh or Windows systems (though it usually is for UNIX systems). Both Macintosh and Windows Type 1 fonts use a binary format for use on the user's host system. For Windows, the binary outline font file has the suffix ".pfb" (printer font binary).

What other kinds of font files are used on the Macintosh?
The Macintosh system requires that Type 1 fonts have a Suitcase file (an FFIL resource) which may contain one or more bitmap screenfonts along with a data structure (the FOND resource). The FOND resource contains font metrics (including kerning data), the font encoding, font family information, the PostScript font name, and an outline font file in binary format. At least one screenfont is required for installation in the Macintosh system.

What kinds of font files are used for the Windows environment?
Type 1 fonts for Windows require the use of Adobe Type Manager software to display the fonts and to communicate their presence to device drivers. ATM expects a PFB file (Printer Font Binary) and a PFM (Printer Font Metrics) file to be installed in the /PSFONTS directory.

Adobe ships its font packages for Windows with a PFB file, an AFM (Adobe Font Metrics) file, and an INF file. At installation time, the ATM installer reads in the three files and creates a PFM file on the user's hard disk, leaving the AFM and INF file on the user's diskette. Some Type 1 font developers put only a PFB and PFM file in their package, which will work with the ATM installer. The INF file mainly contains the Windows font menu name - that which users see in their application's font menu. The file format has not been documented, but it is a very simple and short ASCII file which can be easily created with a text editor. The format for PFM files is documented in the Microsoft Windows Device Developer Kit (DDK).

While there is no specific support for fonts in the various UNIX systems, the general convention is to use PFA (Printer Font Ascii) font files. This is the Type 1 format as it is specified in the Type 1 font format book - without any binary compression applied. In addition, Adobe Font Metrics (AFM) files are generally used for font metrics A files in Type on Call (R) for SGI and Sun Solaris systems. There are a number of methods for producing PFA files from either Macintosh or Windows fonts, including saving a PostScript language print job to disk and using a text editor to cut out the needed font file, or by using commercial font utilities or font development tools.

What are BDF and ABF font files?
These font files are the ASCII and binary forms of a generic bitmap distribution format and are not produced for any Adobe font product. The formats are specified in Adobe Technical Note 5005, Glyph Bitmap Distribution Format (BDF), Version 2.2 (PDF: 101 KB). BDF font files are used for screen display for fonts under X Windows(R).