Class AFMParser


  • public class AFMParser
    extends java.lang.Object
    This class is used to parse AFM(Adobe Font Metrics) documents.
    Version:
    $Revision: 1.1 $
    Author:
    Ben Litchfield (ben@benlitchfield.com)
    See Also:
    AFM Documentation
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ASCENDER
      This is ascender attribute.
      static java.lang.String CAP_HEIGHT
      This is the cap height attribute.
      static java.lang.String CC
      This is a composite character.
      static java.lang.String CHAR_WIDTH
      This is the char width.
      static java.lang.String CHARACTER_SET
      This is the character set.
      static java.lang.String CHARACTERS
      This is the characters attribute.
      static java.lang.String CHARMETRICS_B
      The character metrics value.
      static java.lang.String CHARMETRICS_C
      The character metrics c value.
      static java.lang.String CHARMETRICS_CH
      The character metrics c value.
      static java.lang.String CHARMETRICS_L
      The character metrics value.
      static java.lang.String CHARMETRICS_N
      The character metrics value.
      static java.lang.String CHARMETRICS_VV
      The character metrics value.
      static java.lang.String CHARMETRICS_W
      The character metrics value.
      static java.lang.String CHARMETRICS_W0
      The character metrics value.
      static java.lang.String CHARMETRICS_W0X
      The character metrics value.
      static java.lang.String CHARMETRICS_W0Y
      The character metrics value.
      static java.lang.String CHARMETRICS_W1
      The character metrics value.
      static java.lang.String CHARMETRICS_W1X
      The character metrics value.
      static java.lang.String CHARMETRICS_W1Y
      The character metrics value.
      static java.lang.String CHARMETRICS_WX
      The character metrics value.
      static java.lang.String CHARMETRICS_WY
      The character metrics value.
      static java.lang.String COMMENT
      This is a comment in a AFM file.
      static java.lang.String DESCENDER
      This is the descender attribute.
      static java.lang.String ENCODING_SCHEME
      This is the encoding scheme.
      static java.lang.String END_CHAR_METRICS
      This is the end of character metrics.
      static java.lang.String END_COMPOSITES
      This is the end compisites data section.
      static java.lang.String END_FONT_METRICS
      This is the constant used in the AFM file to end a font metrics item.
      static java.lang.String END_KERN_DATA
      This is the end of kern data.
      static java.lang.String END_KERN_PAIRS
      This is the end of kern pairs data.
      static java.lang.String END_TRACK_KERN
      This is the end of track kern data.
      static java.lang.String ESC_CHAR
      This is the escape character.
      static java.lang.String FAMILY_NAME
      This is the Family name.
      static java.lang.String FONT_BBOX
      This is the font bounding box.
      static java.lang.String FONT_NAME
      This is the font name.
      static java.lang.String FULL_NAME
      This is the full name.
      static java.lang.String IS_BASE_FONT
      This will determine if this is a base font.
      static java.lang.String IS_FIXED_PITCH
      This will determine if this is fixed pitch.
      static java.lang.String IS_FIXED_V
      This will tell if the V is fixed.
      static java.lang.String ITALIC_ANGLE
      This is the italic angle.
      static java.lang.String KERN_PAIR_KP
      This is a kern pair.
      static java.lang.String KERN_PAIR_KPH
      This is a kern pair.
      static java.lang.String KERN_PAIR_KPX
      This is a kern pair.
      static java.lang.String KERN_PAIR_KPY
      This is a kern pair.
      static java.lang.String MAPPING_SCHEME
      This is the mapping scheme.
      static java.lang.String NOTICE
      This is the notice.
      static java.lang.String PCC
      This is a composite charater part.
      static java.lang.String START_CHAR_METRICS
      This is the start of character metrics.
      static java.lang.String START_COMPOSITES
      This is the start compisites data section.
      static java.lang.String START_FONT_METRICS
      This is the constant used in the AFM file to start a font metrics item.
      static java.lang.String START_KERN_DATA
      This is the start of kern data.
      static java.lang.String START_KERN_PAIRS
      This is the start of kern pairs data.
      static java.lang.String START_KERN_PAIRS0
      This is the start of kern pairs data.
      static java.lang.String START_KERN_PAIRS1
      This is the start of kern pairs data.
      static java.lang.String START_TRACK_KERN
      This is the start of track kern data.
      static java.lang.String STD_HW
      The character metrics value.
      static java.lang.String STD_VW
      The character metrics value.
      static java.lang.String UNDERLINE_POSITION
      The underline position.
      static java.lang.String UNDERLINE_THICKNESS
      This is the Underline thickness.
      static java.lang.String V_VECTOR
      This is the V Vector attribute.
      static java.lang.String VERSION
      This is the version of the font.
      static java.lang.String WEIGHT
      This is the weight.
      static java.lang.String X_HEIGHT
      This is the X height.
    • Constructor Summary

      Constructors 
      Constructor Description
      AFMParser​(java.io.InputStream in)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      FontMetric getResult()
      This will get the result of the parsing.
      static void main​(java.lang.String[] args)
      A method to test parsing of all AFM documents in the resources directory.
      void parse()
      This will parse the AFM document.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • COMMENT

        public static final java.lang.String COMMENT
        This is a comment in a AFM file.
        See Also:
        Constant Field Values
      • START_FONT_METRICS

        public static final java.lang.String START_FONT_METRICS
        This is the constant used in the AFM file to start a font metrics item.
        See Also:
        Constant Field Values
      • END_FONT_METRICS

        public static final java.lang.String END_FONT_METRICS
        This is the constant used in the AFM file to end a font metrics item.
        See Also:
        Constant Field Values
      • FONT_NAME

        public static final java.lang.String FONT_NAME
        This is the font name.
        See Also:
        Constant Field Values
      • FULL_NAME

        public static final java.lang.String FULL_NAME
        This is the full name.
        See Also:
        Constant Field Values
      • FAMILY_NAME

        public static final java.lang.String FAMILY_NAME
        This is the Family name.
        See Also:
        Constant Field Values
      • WEIGHT

        public static final java.lang.String WEIGHT
        This is the weight.
        See Also:
        Constant Field Values
      • FONT_BBOX

        public static final java.lang.String FONT_BBOX
        This is the font bounding box.
        See Also:
        Constant Field Values
      • VERSION

        public static final java.lang.String VERSION
        This is the version of the font.
        See Also:
        Constant Field Values
      • NOTICE

        public static final java.lang.String NOTICE
        This is the notice.
        See Also:
        Constant Field Values
      • ENCODING_SCHEME

        public static final java.lang.String ENCODING_SCHEME
        This is the encoding scheme.
        See Also:
        Constant Field Values
      • MAPPING_SCHEME

        public static final java.lang.String MAPPING_SCHEME
        This is the mapping scheme.
        See Also:
        Constant Field Values
      • ESC_CHAR

        public static final java.lang.String ESC_CHAR
        This is the escape character.
        See Also:
        Constant Field Values
      • CHARACTER_SET

        public static final java.lang.String CHARACTER_SET
        This is the character set.
        See Also:
        Constant Field Values
      • CHARACTERS

        public static final java.lang.String CHARACTERS
        This is the characters attribute.
        See Also:
        Constant Field Values
      • IS_BASE_FONT

        public static final java.lang.String IS_BASE_FONT
        This will determine if this is a base font.
        See Also:
        Constant Field Values
      • V_VECTOR

        public static final java.lang.String V_VECTOR
        This is the V Vector attribute.
        See Also:
        Constant Field Values
      • IS_FIXED_V

        public static final java.lang.String IS_FIXED_V
        This will tell if the V is fixed.
        See Also:
        Constant Field Values
      • CAP_HEIGHT

        public static final java.lang.String CAP_HEIGHT
        This is the cap height attribute.
        See Also:
        Constant Field Values
      • X_HEIGHT

        public static final java.lang.String X_HEIGHT
        This is the X height.
        See Also:
        Constant Field Values
      • ASCENDER

        public static final java.lang.String ASCENDER
        This is ascender attribute.
        See Also:
        Constant Field Values
      • DESCENDER

        public static final java.lang.String DESCENDER
        This is the descender attribute.
        See Also:
        Constant Field Values
      • UNDERLINE_POSITION

        public static final java.lang.String UNDERLINE_POSITION
        The underline position.
        See Also:
        Constant Field Values
      • UNDERLINE_THICKNESS

        public static final java.lang.String UNDERLINE_THICKNESS
        This is the Underline thickness.
        See Also:
        Constant Field Values
      • ITALIC_ANGLE

        public static final java.lang.String ITALIC_ANGLE
        This is the italic angle.
        See Also:
        Constant Field Values
      • CHAR_WIDTH

        public static final java.lang.String CHAR_WIDTH
        This is the char width.
        See Also:
        Constant Field Values
      • IS_FIXED_PITCH

        public static final java.lang.String IS_FIXED_PITCH
        This will determine if this is fixed pitch.
        See Also:
        Constant Field Values
      • START_CHAR_METRICS

        public static final java.lang.String START_CHAR_METRICS
        This is the start of character metrics.
        See Also:
        Constant Field Values
      • END_CHAR_METRICS

        public static final java.lang.String END_CHAR_METRICS
        This is the end of character metrics.
        See Also:
        Constant Field Values
      • CHARMETRICS_C

        public static final java.lang.String CHARMETRICS_C
        The character metrics c value.
        See Also:
        Constant Field Values
      • CHARMETRICS_CH

        public static final java.lang.String CHARMETRICS_CH
        The character metrics c value.
        See Also:
        Constant Field Values
      • CHARMETRICS_WX

        public static final java.lang.String CHARMETRICS_WX
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_W0X

        public static final java.lang.String CHARMETRICS_W0X
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_W1X

        public static final java.lang.String CHARMETRICS_W1X
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_WY

        public static final java.lang.String CHARMETRICS_WY
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_W0Y

        public static final java.lang.String CHARMETRICS_W0Y
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_W1Y

        public static final java.lang.String CHARMETRICS_W1Y
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_W

        public static final java.lang.String CHARMETRICS_W
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_W0

        public static final java.lang.String CHARMETRICS_W0
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_W1

        public static final java.lang.String CHARMETRICS_W1
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_VV

        public static final java.lang.String CHARMETRICS_VV
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_N

        public static final java.lang.String CHARMETRICS_N
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_B

        public static final java.lang.String CHARMETRICS_B
        The character metrics value.
        See Also:
        Constant Field Values
      • CHARMETRICS_L

        public static final java.lang.String CHARMETRICS_L
        The character metrics value.
        See Also:
        Constant Field Values
      • STD_HW

        public static final java.lang.String STD_HW
        The character metrics value.
        See Also:
        Constant Field Values
      • STD_VW

        public static final java.lang.String STD_VW
        The character metrics value.
        See Also:
        Constant Field Values
      • START_TRACK_KERN

        public static final java.lang.String START_TRACK_KERN
        This is the start of track kern data.
        See Also:
        Constant Field Values
      • END_TRACK_KERN

        public static final java.lang.String END_TRACK_KERN
        This is the end of track kern data.
        See Also:
        Constant Field Values
      • START_KERN_DATA

        public static final java.lang.String START_KERN_DATA
        This is the start of kern data.
        See Also:
        Constant Field Values
      • END_KERN_DATA

        public static final java.lang.String END_KERN_DATA
        This is the end of kern data.
        See Also:
        Constant Field Values
      • START_KERN_PAIRS

        public static final java.lang.String START_KERN_PAIRS
        This is the start of kern pairs data.
        See Also:
        Constant Field Values
      • END_KERN_PAIRS

        public static final java.lang.String END_KERN_PAIRS
        This is the end of kern pairs data.
        See Also:
        Constant Field Values
      • START_KERN_PAIRS0

        public static final java.lang.String START_KERN_PAIRS0
        This is the start of kern pairs data.
        See Also:
        Constant Field Values
      • START_KERN_PAIRS1

        public static final java.lang.String START_KERN_PAIRS1
        This is the start of kern pairs data.
        See Also:
        Constant Field Values
      • START_COMPOSITES

        public static final java.lang.String START_COMPOSITES
        This is the start compisites data section.
        See Also:
        Constant Field Values
      • END_COMPOSITES

        public static final java.lang.String END_COMPOSITES
        This is the end compisites data section.
        See Also:
        Constant Field Values
      • CC

        public static final java.lang.String CC
        This is a composite character.
        See Also:
        Constant Field Values
      • PCC

        public static final java.lang.String PCC
        This is a composite charater part.
        See Also:
        Constant Field Values
      • KERN_PAIR_KP

        public static final java.lang.String KERN_PAIR_KP
        This is a kern pair.
        See Also:
        Constant Field Values
      • KERN_PAIR_KPH

        public static final java.lang.String KERN_PAIR_KPH
        This is a kern pair.
        See Also:
        Constant Field Values
      • KERN_PAIR_KPX

        public static final java.lang.String KERN_PAIR_KPX
        This is a kern pair.
        See Also:
        Constant Field Values
      • KERN_PAIR_KPY

        public static final java.lang.String KERN_PAIR_KPY
        This is a kern pair.
        See Also:
        Constant Field Values
    • Constructor Detail

      • AFMParser

        public AFMParser​(java.io.InputStream in)
        Constructor.
        Parameters:
        in - The input stream to read the AFM document from.
    • Method Detail

      • main

        public static void main​(java.lang.String[] args)
                         throws java.io.IOException
        A method to test parsing of all AFM documents in the resources directory.
        Parameters:
        args - Ignored.
        Throws:
        java.io.IOException - If there is an error parsing one of the documents.
      • parse

        public void parse()
                   throws java.io.IOException
        This will parse the AFM document. This will close the Input stream when the parsing is finished.
        Throws:
        java.io.IOException - If there is an IO error reading the document.
      • getResult

        public FontMetric getResult()
        This will get the result of the parsing.
        Returns:
        The parsed java object.