Creative Docs .NET has its own OpenType engine. Most of it is implemented in C#, from the OpenType table analysis to the metrics extraction, glyph mapping and substitution code. For the rendering, it feeds 2D curves to the
agg back-end.
In order to present the fonts in a meaningful manner to the user, I decided to group them into families, which seems logical.
The
family is basically defined by the
Font Family Name (ID 1) in the
"name" table of the OpenType font (this would be "Arial" for "Arial", "Arial Bold", "Arial Italic" and "Arial Bold Italic", but "Arial Black" for the Arial Black font). But there is also another entry in the "name" table, called
Preferred Family (ID 16), which is not mandatory and did not exist in the fonts installed with Windows XP.
Some Adobe fonts, such as
Warnock Pro, which exists in 32 different variants ranging from "Light Italic Caption" to "Semibold Subhead", use this
Preferred Family name ("Warnock Pro") with the
Preferred Subfamily name ("Light Italic Caption"). My version of Microsoft Word does not recognize these fonts as belonging to a unique family and shows a long list with "Warnock Pro", "Warnock Pro Caption", "Warnock Pro Display", "Warnock Pro Light", etc. and it happily mixes font weights ("Light", "Semibold", etc. with the optical suffixes "Caption", "Display", etc.).
Warnock® Pro Light Italic
I chose to take into account the
Preferred Family name if it was available, and if not, fall back and use the
Font Family Name. That's why Creative Docs .NET presents Warnock Pro as a single family with 32 styles, yet shows "Arial", "Arial Black" and "Arial Narrow" as three different families under Windows XP.
And here comes Windows Vista... There have been a few updates to the fonts, especially "Arial Black" and the "Arial Narrow" families. Do you guess what changed? Microsoft decided to define a
Preferred Family for these fonts. Great.
The trouble is, when Creative Docs .NET (up to 2.0.14) saves formatted text in its
*.crdoc documents, it stores the font family name and the font style name to uniquely identify the font. But for Arial Black, this is
"Arial Black" and
"" under XP. Under Vista, this font cannot be found, as its identity has now changed to
"Arial" and
"Black".
I've fixed this issue and a new version of Creative Docs .NET will be released in a few days.