Accessibility

CFF / Type 2 Q & A

What is a CFF Font?

The CFF (Compact Font Format) was developed to minimize the amount of storage needed for font programs. It was designed to be used primarily with Type 2 charstrings (character description procedures), although other font types may be used.

How much smaller are CFF fonts?

A CFF/Type2 font requires about 30 to 40% less space than the equivalent Type 1 font, on the average. This is without using subroutines, which can further increase the amount of space saved. Similar space savings can be expected for large Asian language fonts that utilize the CID-keyed font format.

How is the space-savings achieved?

Space is saved through a number of optimizations in the encoding method. For example, operators were extended to allow multiple sets of arguments for each operator; commonly used values and character strings can assume a default value; encoding values are more efficiently assigned; and subroutines can be shared among a family of fonts (called a FontSet).

Is the CFF format fairly similar to the Type 1 format?

Yes, it is based on all of the same concepts for drawing paths and hinting, but allows a more compact encoding of the font data and procedures. A Type 1 font can be converted into CFF/Type2 format, and back to Type 1 again, without any loss of quality.

For what products will the CFF/Type2 format be used?

It is currently used for embedding fonts into Acrobat® 3.0 PDF documents (using PDF format 1.2), and it will be the basis for the "Type 1" part of the new OpenType font format jointly announced by Adobe® and Microsoft®. Also, the format will be used for fonts embedded in printer ROMs for Level 3 printers containing PostScript software.

How is the format used by Acrobat?

Fonts that need to be embedded in a PDF file are first converted to the CFF/Type2 format by the Acrobat Distiller® or Acrobat PDFWriter®. An additional Zip compression is then applied, and the result is then stored in the PDF document file. When the document is viewed or printed, the font is converted back into the Type 1 format for use by Adobe Type Manager software, or for inclusion in a PostScript® language print file.

Which PostScript interpreters will interpret CFF fonts?

PostScript version 2017 will interpret only CFF Roman (single-byte) fonts that are downloaded. All Level 3 interpreters will support both single- and double-byte CFF fonts.

How can software know if a printer supports the CFF format?

The decision should not be based on the PostScript version number. The best way to check for CFF support is to see if the FontType 2 implicit resource is defined.

Are the specifications of the format available?

Yes, they are available as Adobe Technical Note #5176: " The Compact Font Format Specification" (PDF, 510k), and Adobe Technical Note #5177: "Type 2 Charstring Format" (PDF, 194k).

Is the CFF/Type2 format compatible with ATM and PostScript interpreters?

New versions of ATM, and all Level 3 printers will be able to interpret CFF/Type2 fonts directly. However, it is not so likely that users or applications will ever have a "plain" font in that format. It is more likely that users will encounter the format as part of an OpenType font, embedded in a PDF file, or as a printer ROM font.

Will there be commercial third-party font Tools that support the format?

There will be commercial tools to create OpenType fonts, but, again, there may be no need to create a "plain" CFF/Type2 font (that is, no need to have a CFF/Type2 font that is not in an OpenType wrapper).

Will the CID-keyed font format utilize the CFF/Type2 format?

Yes, support for CID-keyed fonts is built into the format, and there will be OpenType CID-keyed fonts for use with large character set fonts.

How can I get a sample CFF/Type 2 font for test purposes?

Adobe will not be making CFF/Type2 fonts until that format is used as part of the planned OpenType products. But since the format is being used for embedding fonts in PDF documents with Acrobat 3.0, a sample font can be extracted from a PDF file for development and testing purposes. However, such a font will not exhibit the full range of CFF/Type2 features, since the fonts extracted from a PDF file will not be part of a FontSet, and will not utilize the local and global subroutine features of the format.