PANOSE

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.

Members

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