PANOSE
Appearance
The Panose field in the font metrics will allow for quantitative descriptions of the visual properties of font faces. The PANOSE definition contains ten digits, each of which currently describes up to sixteen variations.
Type
BYTE bFamilyType; BYTE bSerifStyle; BYTE bWeight; BYTE bProportion; BYTE bContrast; BYTE bStrokeVariation; BYTE bArmStyle; BYTE bLetterform; BYTE bMidline; BYTE bXHeight; BYTE fbPassedISO; BYTE fbFailedISO;
C Declaration Method
typedef struct
Fields
- bFamilyType
- Family kind.
- 0 Any
- 1 No Fit
- 2 Text and Display
- 3 Script
- 4 Decorative
- 5 Pictorial
- bSerifStyle
- Serif style.
- 0 Any
- 1 No Fit
- 2 Cove
- 3 Obtuse Cove
- 4 Square Cove
- 5 Obtuse Square Cove
- 6 Square
- 7 Thin
- 8 Bone
- 9 Exaggerated
- 10 Triangle
- 11 Normal Sans
- 12 Obtuse Sans
- 13 Perp Sans
- 14 Flared
- 15 Rounded
- bWeight
- Weight.
- 0 Any
- 1 No Fit
- 2 Very Light
- 3 Light
- 4 Thin
- 5 Book
- 6 Medium
- 7 Demi
- 8 Bold
- 9 Heavy
- 10 Black
- 11 Nord
- bProportion
- Proportion.
- 0 Any
- 1 No Fit
- 2 Old Style
- 3 Modern
- 4 Even Width
- 5 Expanded
- 6 Condensed
- 7 Very Expanded
- 8 Very Condensed
- 9 Monospaced
- bContrast
- Contrast.
- 0 Any
- 1 No Fit
- 2 None
- 3 Very Low
- 4 Low
- 5 Medium Low
- 6 Medium
- 7 Medium High
- 8 High
- 9 Very High
- bStrokeVariation
- Stroke Variation.
- 0 Any
- 1 No Fit
- 2 Gradual/Diagonal
- 3 Gradual/Transitional
- 4 Gradual/Vertical
- 5 Gradual/Horizontal
- 6 Rapid/Vertical
- 7 Rapid/Horizontal
- 8 Instant/Vertical
- bArmStyle
- Arm Style.
- 0 Any
- 1 No Fit
- 2 Straight Arms/Horizontal
- 3 Straight Arms/Wedge
- 4 Straight Arms/Vertical
- 5 Straight Arms/Single Serif
- 6 Straight Arms/Double Serif
- 7 Non-Straight Arms/Horizontal
- 8 Non-Straight Arms/Wedge
- 9 Non-Straight Arms/Vertical
- 10 Non-Straight Arms/Single Serif
- 11 Non-Straight Arms/Double Serif
- bLetterform
- Letterform.
- 0 Any
- 1 No Fit
- 2 Normal/Contact
- 3 ONormal/Weighted
- 4 ONormal/Boxed
- 5 ONormal/Flattened
- 6 ONormal/Rounded
- 7 ONormal/Off Center
- 8 ONormal/Square
- 9 Oblique/Contact
- 10 Oblique/Weighted
- 11 Oblique/Boxed
- 12 Oblique/Flattened
- 13 Oblique/Rounded
- 14 Oblique/Off Center
- 15 Oblique/Square
- bMidline
- Midline.
- 0 Any
- 1 No Fit
- 2 Standard/Trimmed
- 3 Standard/Pointed
- 4 Standard/Serifed
- 5 High/Trimmed
- 6 High/Pointed
- 7 High/Serifed
- 8 Constant/Trimmed
- 9 Constant/Pointed
- 10 Constant/Serifed
- 11 Low/Trimmed
- 12 Low/Pointed
- 13 Low/Serifed
- bXHeight
- X-Height.
- 0 Any
- 1 No Fit
- 2 Constant/Small
- 3 Constant/Standard
- 4 Constant/Large
- 5 Ducking/Small
- 6 Ducking/Standard
- 7 Ducking/Large
- fbPassedISO
- Font passed ISO test.
- The following flags indicate those displays and resolutions at which the font complied with ISO 9241:
- FM_ISO_9518_640
- FM_ISO_9515_640
- FM_ISO_9515_1024
- FM_ISO_9517_640
- FM_ISO_9517_1024
- fbFailedISO
- Font failed ISO test.
- The following flags indicate those displays and resolutions at which the font did not comply with ISO 9241:
- FM_ISO_9518_640
- FM_ISO_9515_640
- FM_ISO_9515_1024
- FM_ISO_9517_640
- FM_ISO_9517_1024
Example Code
typedef struct _PANOSE { BYTE bFamilyType; /* Family kind. */ BYTE bSerifStyle; /* Serif style. */ BYTE bWeight; /* Weight. */ BYTE bProportion; /* Proportion. */ BYTE bContrast; /* Contrast. */ BYTE bStrokeVariation; /* Stroke Variation. */ BYTE bArmStyle; /* Arm Style. */ BYTE bLetterform; /* Letterform. */ BYTE bMidline; /* Midline. */ BYTE bXHeight; /* X-Height. */ BYTE fbPassedISO; /* Font passed ISO test. */ BYTE fbFailedISO; /* Font failed ISO test. */ } PANOSE; typedef PANOSE * PPANOSE ;