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.
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.
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).
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.
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.
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.
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.
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.
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).
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.
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).
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.
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.