A Tool For Enumerating FDArray Elements & Their CIDs
On this 29th day of February in the year 2012, which is a fdarray-check.pl, makes use of the AFDKO tx tool, and massages its output into a form that is much more human-readable, and which can be repurposed.
I decided to develop this tool so that it would become easier to use the CIDs and CID ranges that correspond to the glyphs in each FDArray element of a CID-keyed font — whether it is a CIDFont resource, CFF, or OpenType/CFF font — which can then be used as the argument to the "-g" option that is supported by many AFDKO tools, such as tx and stemHist.
Using this tool is simple. A CID-keyed font is the argument, as demonstrated below by specifying a CID-keyed OpenType/CFF font:
% fdarray-check.pl KazurakiSP2N-Light.otf
Here is the output:
Detected ROS: Adobe-Identity-0
KazurakiSP2N-Light-Dingbats (0): 151-165,167-201,1861-1863,2014-2028,2030-2060,3720-3722
KazurakiSP2N-Light-Generic (1): 0
KazurakiSP2N-Light-Kana (2): 166,202-377,2029,2061-2236,3723-3775
KazurakiSP2N-Light-Kanji (3): 378-1860,2237-3719
KazurakiSP2N-Light-Proportional (4): 1-150
KazurakiSP2N-Light-ProportionalRot (5): 1864-2013
The tool also reports whether GIDs are not equal to CIDs, and starting from which GID/CID pair:
% fdarray-check.pl HeiseiKakuGoStd-W3.otf
NOTE: GIDs do not equal CIDs starting from GID+8359/CID+8720!
Detected ROS: Adobe-Japan1-3
HeiseiKakuGoStd-W3-AlphaNum (0): 7555-7584,8061-8137,8184-8185,8224-8228,8286-8302
HeiseiKakuGoStd-W3-Alphabetic (1): 780-841,1011-1124
HeiseiKakuGoStd-W3-Dingbats (2): 423-424,504-514,633-659,661-779,7478,7585-7612,7624-7632,7887-7890,7892-7917,7940-7957,8005-8053,8055-8060,8166-8183,8186-8190,8192-8195,8206-8222,8268-8283,8303-8312,8327-8358
HeiseiKakuGoStd-W3-DingbatsRot (3): 9263-9275
HeiseiKakuGoStd-W3-Generic (4): 0,422,425-500,629,7479-7554,8229-8263
HeiseiKakuGoStd-W3-GenericRot (5): 9276-9353
HeiseiKakuGoStd-W3-HKana (6): 326-389,391-421,515-598
HeiseiKakuGoStd-W3-HKanaRot (7): 9084-9262
HeiseiKakuGoStd-W3-HRoman (8): 231-325,390,501-503,599-628,630-632
HeiseiKakuGoStd-W3-HRomanRot (9): 8950-9081
HeiseiKakuGoStd-W3-Kana (10): 660,842-1010,7891,7918-7939,7958-7960,8264-8265,8313-8316
HeiseiKakuGoStd-W3-Kanji (11): 1125-7477,7613-7623,7633-7886,7961-8004,8054,8138-8165,8191,8196-8205,8223,8266-8267,8284-8285,8317-8326
HeiseiKakuGoStd-W3-Proportional (12): 1-230
HeiseiKakuGoStd-W3-ProportionalRot (13): 8720-8949
If the output of this tool is used as the argument of the "-g" option, which specifies GIDs, not CIDs, and if GIDs do not equal CIDs in the font, the results will be incorrect. The slash serves as a prefix that explicitly specifies CIDs, and the "-p" option will prefix the CIDs with a slash so that the output can be readily used with various AFDKO tools:
% fdarray-check.pl-pHeiseiKakuGoStd-W3.otf
NOTE: GIDs do not equal CIDs starting from GID+8359/CID+8720!
Detected ROS: Adobe-Japan1-3
HeiseiKakuGoStd-W3-AlphaNum (0): /7555-/7584,/8061-/8137,/8184-/8185,/8224-/8228,/8286-/8302
HeiseiKakuGoStd-W3-Alphabetic (1): /780-/841,/1011-/1124
HeiseiKakuGoStd-W3-Dingbats (2): /423-/424,/504-/514,/633-/659,/661-/779,/7478,/7585-/7612,/7624-/7632,/7887-/7890,/7892-/7917,/7940-/7957,/8005-/8053,/8055-/8060,/8166-/8183,/8186-/8190,/8192-/8195,/8206-/8222,/8268-/8283,/8303-/8312,/8327-/8358
HeiseiKakuGoStd-W3-DingbatsRot (3): /9263-/9275
HeiseiKakuGoStd-W3-Generic (4): /0,/422,/425-/500,/629,/7479-/7554,/8229-/8263
HeiseiKakuGoStd-W3-GenericRot (5): /9276-/9353
HeiseiKakuGoStd-W3-HKana (6): /326-/389,/391-/421,/515-/598
HeiseiKakuGoStd-W3-HKanaRot (7): /9084-/9262
HeiseiKakuGoStd-W3-HRoman (8): /231-/325,/390,/501-/503,/599-/628,/630-/632
HeiseiKakuGoStd-W3-HRomanRot (9): /8950-/9081
HeiseiKakuGoStd-W3-Kana (10): /660,/842-/1010,/7891,/7918-/7939,/7958-/7960,/8264-/8265,/8313-/8316
HeiseiKakuGoStd-W3-Kanji (11): /1125-/7477,/7613-/7623,/7633-/7886,/7961-/8004,/8054,/8138-/8165,/8191,/8196-/8205,/8223,/8266-/8267,/8284-/8285,/8317-/8326
HeiseiKakuGoStd-W3-Proportional (12): /1-/230
HeiseiKakuGoStd-W3-ProportionalRot (13): /8720-/8949
Lastly, if you attempt to use this tool with a name-keyed font, it returns an error and exits:
% fdarray-check.pl MinionPro-Regular.otf
ERROR: name-keyed font! Quitting...
Enjoy!
May 12, 2012 UPDATE:The fdarray-check.pl tool was updated to also report, in parentheses after the list of CIDs and CID ranges, the total number of CIDs in each FDArray element.