Building a CID-keyed font with 64K glyphs

News|Adobe Blogs|Dr. Ken Lunde 2012-05-15 13:25:48

Today, I want to demonstrate how the AFDKO mergeFonts tool can be used to quickly and easily build a CID-keyed font that includes 64K glyphs, meaning CIDs 0 through 65534. This is the maximum number of glyphs that a CIDFont resource can contain. This font, of course, will use the special-purpose Adobe-Identity-0 ROS, and although its is a CID-keyed font, it will include only one FDArray element.

We can build such a CID-keyed font by using the following three components:

A name-keyed Type 1 font that includes at least the .notdef glyph (this will serve as the glyph for CID+0) and another glyph that will be used for CIDs 1 through 65534A cidfontinfo fileA mergeFonts mapping file that maps the glyphs in the name-keyed Type 1 font to CIDs 0 through 65534

The name-keyed font includes the following two glyphs: .notdef and P_zero_one ("P01"). As a side note, the tool, which is a simple wrapper for the AFDKO tx tool, can be used to list the glyphs in a name-keyed font, and is used as follows, with sample output given after the command line (it skips the .notdef glyph in its output):

% extract-names.plfont.pfa


The cidfontinfo file is below (and can be copied to a file with the same name):

FontName (UnicodeP01)

FullName (Unicode P01)

FamilyName (Unicode P01)

Weight (Regular)

version (1.000)

Registry (Adobe)

Ordering (Identity)

Supplement 0

XUID [1 11 9273868]

AdobeCopyright (Copyright 2012 Adobe Systems Incorporated. All Rights Reserved.)

Trademark ()

FSType 8

isFixedPitch true

Serif false

IsBoldStyle false

IsItalicStyle false

The mergeFonts mapping file contains 65,536 lines, the first of which indicates that it is a mergeFonts mapping file, followed by the name of the FDArray element. The second and subsequent lines map glyph names to CIDs. Below is an excerpt:

mergeFonts UnicodeP01-0

0 .notdef

1 P_zero_one

2 P_zero_one

3 P_zero_one

4 P_zero_one

5 P_zero_one

<65,524 lines omitted>

65530 P_zero_one

65531 P_zero_one

65532 P_zero_one

65533 P_zero_one

65534 P_zero_one

The mergeFonts command line, which is used to build the CIDFont resource is as follows:

% mergeFonts-cid cidfontinfo map.txt font.pfa

That's it! The result is a CIDFont resource named that contains 65,535 CIDs (CIDs 0 through 65534). Because there is a name-to CID-keyed conversion, the "-cid" option and a cidfontinfo file is required when using the mergeFonts tool.

The next CJK Type Blog article, which will follow in a day or two, will demonstrate how the same CID-keyed font can be built, but with 256 FDArray elements, which is the maximum for a CIDFont resource. Again, the mergeFonts tool will be used.