typedef struct tagPANOSE { /* panose */
DWORD ulCulture;
BYTE bFamilyType;
BYTE bSerifStyle;
BYTE bWeight;
BYTE bProportion;
BYTE bContrast;
BYTE bStrokeVariation;
BYTE bArmStyle;
BYTE bLetterform;
BYTE bMidline;
BYTE bXHeight;
} PANOSE
The PANOSE structure describes the Panose font-classification values for a TrueType font. These characteristics are then used to associate the font with other fonts of similar appearance having different names.
ulCulture
Specifies the culture specific classification scheme of the PANOSE number. The culture number specifies how to interpret the ten byte fields following this field. The byte fields listed here are for Latin fonts. This number can have the following values:
Value | Meaning |
PAN_ANY | Any |
PAN_CULTURE_LATIN | Latin |
bFamilyType
For Latin fonts bFamilyType can have one of the following values:
Value | Meaning |
PAN_ANY | Any |
PAN_NO_FIT | No Fit |
PAN_FAMILY_TEXT_DISPLAY | Text and Display |
PAN_FAMILY_SCRIPT | Script |
PAN_FAMILY_DECORATIVE | Decorative |
PAN_FAMILY_PICTORIAL | Pictorial |
bSerifStyle
Specifies the serif style. For Latin font bSerifStyle can have one of the following values:
Value | Meaning |
PAN_ANY | Any |
PAN_NO_FIT | No Fit |
PAN_SERIF_COVE | Cove |
PAN_SERIF_OBTUSE_COVE | Obtuse Cove |
PAN_SERIF_SQUARE_COVE | Square Cove |
PAN_SERIF_OBTUSE_SQUARE_COVE | Obtuse Square Cove |
PAN_SERIF_SQUARE | Square |
PAN_SERIF_THIN | Thin |
PAN_SERIF_BONE | Bone |
PAN_SERIF_EXAGGERATED | Exaggerated |
PAN_SERIF_TRIANGLE | Triangle |
PAN_SERIF_NORMAL_SANS | Normal Sans |
PAN_SERIF_OBTUSE_SANS | Obtuse Sans |
PAN_SERIF_PERP_SANS | Prep Sans |
PAN_SERIF_FLARED | Flared |
PAN_SERIF_ROUNDED | Rounded |
bWeight
For Latin fonts bWeight can have one of the following values:
Value | Meaning |
PAN_ANY | Any |
PAN_NO_FIT | No Fit |
PAN_WEIGHT_VERY_LIGHT | Very Light |
PAN_WEIGHT_LIGHT | Light |
PAN_WEIGHT_THIN | Thin |
PAN_WEIGHT_BOOK | Book |
PAN_WEIGHT_MEDIUM | Medium |
PAN_WEIGHT_DEMI | Demi |
PAN_WEIGHT_BOLD | Bold |
PAN_WEIGHT_HEAVY | Heavy |
PAN_WEIGHT_BLACK | Black |
PAN_WEIGHT_NORD | Nord |
bProportion
For Latin fonts bProportion can have one of the following values:
Value | Meaning |
PAN_ANY | Any |
PAN_NO_FIT | No Fit |
PAN_PROP_OLD_STYLE | Old Style |
PAN_PROP_MODERN | Modern |
PAN_PROP_EVEN_WIDTH | Even Width |
PAN_PROP_EXPANDED | Expanded |
PAN_PROP_CONDENSED | Condensed |
PAN_PROP_VERY_EXPANDED | Very Expanded |
PAN_PROP_VERY_CONDENSED | Very Condensed |
PAN_PROP_MONOSPACED | Monospaced |
bContrast
For Latin fonts bContrast can have one of the following values:
Value | Meaning |
PAN_ANY | Any |
PAN_NO_FIT | No Fit |
PAN_CONTRAST_NONE | None |
PAN_CONTRAST_VERY_LOW | Very Low |
PAN_CONTRAST_LOW | Low |
PAN_CONTRAST_MEDIUM_LOW | Medium Low |
PAN_CONTRAST_MEDIUM | Medium |
PAN_CONTRAST_MEDIUM_HIGH | Medium High |
PAN_CONTRAST_HIGH | High |
PAN_CONTRAST_VERY_HIGH | Very High |
bStrokeVariation
For Latin fonts bStrokeVariation can have one of the following values:
Value | Meaning |
PAN_ANY | Any |
PAN_NO_FIT | No Fit |
PAN_STROKE_GRADUAL_DIAG | Gradual/Diagonal |
PAN_STROKE_GRADUAL_TRAN | Gradual/Transitional |
PAN_STROKE_GRADUAL_VERT | Gradual/Vertical |
PAN_STROKE_GRADUAL_HORZ | Gradual/Horizontal |
PAN_STROKE_RAPID_VERT | Rapid/Vertical |
PAN_STROKE_RAPID_HORZ | Rapid/Horizontal |
PAN_STROKE_INSTANT_VERT | Instant/Vertical |
bArmStyle
For Latin fonts bArmStyle can have one of the following values:
symbol | value |
PAN_ANY | 0 Any |
PAN_NO_FIT | 1 No Fit |
PAN_STRAIGHT_ARMS_HORZ | 2 Straight Arms/Horizontal |
PAN_STRAIGHT_ARMS_WEDGE | 3 Straight Arms/Wedge |
PAN_STRAIGHT_ARMS_VERT | 4 Straight Arms/Vertical |
PAN_STRAIGHT_ARMS_SINGLE_SERIF | 5 Straight Arms/Single-Serif |
PAN_STRAIGHT_ARMS_DOUBLE_SERIF | 6 Straight Arms/Double-Serif |
PAN_BENT_ARMS_HORZ | 7 Non-Straight Arms/Horizontal |
PAN_BENT_ARMS_WEDGE | 8 Non-Straight Arms/Wedge |
PAN_BENT_ARMS_VERT | 9 Non-Straight Arms/Vertical |
PAN_BENT_ARMS_SINGLE_SERIF | 10 Non-Straight Arms/Single-Serif |
PAN_BENT_ARMS_DOUBLE_SERIF | 11 Non-Straight Arms/Double-Serif |
bLetterform
bLetterform can have one of the following values:
symbol | value |
PAN_ANY | 0 Any |
PAN_NO_FIT | 1 No Fit |
PAN_LETT_NORMAL_CONTACT | 2 Normal/Contact |
PAN_LETT_NORMAL_WEIGHTED | 3 Normal/Weighted |
PAN_LETT_NORMAL_BOXED | 4 Normal/Boxed |
PAN_LETT_NORMAL_FLATTENED | 5 Normal/Flattened |
PAN_LETT_NORMAL_ROUNDED | 6 Normal/Rounded |
PAN_LETT_NORMAL_OFF_CENTER | 7 Normal/Off Center |
PAN_LETT_NORMAL_SQUARE | 8 Normal/Square |
PAN_LETT_OBLIQUE_CONTACT | 9 Oblique/Contact |
PAN_LETT_OBLIQUE_WEIGHTED | 10 Oblique/Weighted |
PAN_LETT_OBLIQUE_BOXED | 11 Oblique/Boxed |
PAN_LETT_OBLIQUE_FLATTENED | 12 Oblique/Flattened |
PAN_LETT_OBLIQUE_ROUNDED | 13 Oblique/Rounded |
PAN_LETT_OBLIQUE_OFF_CENTER | 14 Oblique/Off Center |
PAN_LETT_OBLIQUE_SQUARE | 15 Oblique/Square |
bMidline
bMidline can have one of the following values:
symbol | value |
PAN_ANY | 0 Any |
PAN_NO_FIT | 1 No Fit |
PAN_MIDLINE_STANDARD_TRIMMED | 2 Standard/Trimmed |
PAN_MIDLINE_STANDARD_POINTED | 3 Standard/Pointed |
PAN_MIDLINE_STANDARD_SERIFED | 4 Standard/Serifed |
PAN_MIDLINE_HIGH_TRIMMED | 5 High/Trimmed |
PAN_MIDLINE_HIGH_POINTED | 6 High/Pointed |
PAN_MIDLINE_HIGH_SERIFED | 7 High/Serifed |
PAN_MIDLINE_CONSTANT_TRIMMED | 8 Constant/Trimmed |
PAN_MIDLINE_CONSTANT_POINTED | 9 Constant/Pointed |
PAN_MIDLINE_CONSTANT_SERIFED | 10 Constant/Serifed |
PAN_MIDLINE_LOW_TRIMMED | 11 Low/Trimmed |
PAN_MIDLINE_LOW_POINTED | 12 Low/Pointed |
PAN_MIDLINE_LOW_SERIFED | 13 Low/Serifed |
bXHeight
bXHeight can have one of the following values:
symbol | value |
PAN_ANY | 0 Any |
PAN_NO_FIT | 1 No Fit |
PAN_XHEIGHT_CONSTANT_SMALL | 2 Constant/Small |
PAN_XHEIGHT_CONSTANT_STD | 3 Constant/Standard |
PAN_XHEIGHT_CONSTANT_LARGE | 4 Constant/Large |
PAN_XHEIGHT_DUCKING_SMALL | 5 Ducking/Small |
PAN_XHEIGHT_DUCKING_STD | 6 Ducking/Standard |
PAN_XHEIGHT_DUCKING_LARGE | 7 Ducking/Large |