Class AFMFile


  • public class AFMFile
    extends java.lang.Object
    Represents the contents of a Type 1 AFM font metrics file.
    • Field Detail

      • LOG

        private static final org.apache.commons.logging.Log LOG
        logging instance
      • fontName

        private java.lang.String fontName
      • fullName

        private java.lang.String fullName
      • familyName

        private java.lang.String familyName
      • weight

        private java.lang.String weight
      • fontBBox

        private java.awt.geom.RectangularShape fontBBox
      • encodingScheme

        private java.lang.String encodingScheme
      • characterSet

        private java.lang.String characterSet
      • capHeight

        private java.lang.Number capHeight
      • xHeight

        private java.lang.Number xHeight
      • ascender

        private java.lang.Number ascender
      • descender

        private java.lang.Number descender
      • stdHW

        private java.lang.Number stdHW
      • stdVW

        private java.lang.Number stdVW
      • charNameToMetrics

        private java.util.Map<java.lang.String,​AFMCharMetrics> charNameToMetrics
      • firstChar

        private int firstChar
      • lastChar

        private int lastChar
      • kerningMap

        private java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.awt.geom.Dimension2D>> kerningMap
    • Constructor Detail

      • AFMFile

        public AFMFile()
        Default constructor.
    • Method Detail

      • getFontName

        public java.lang.String getFontName()
        Returns the FontName value.
        Returns:
        the font name
      • setFontName

        public void setFontName​(java.lang.String fontName)
        Sets the FontName value.
        Parameters:
        fontName - the font name to set
      • getFullName

        public java.lang.String getFullName()
        Returns the FullName value.
        Returns:
        the full name of the font
      • setFullName

        public void setFullName​(java.lang.String fullName)
        Sets the FullName value.
        Parameters:
        fullName - the full name to set
      • getFamilyName

        public java.lang.String getFamilyName()
        Returns the FamilyName value.
        Returns:
        the family name of the font
      • setFamilyName

        public void setFamilyName​(java.lang.String familyName)
        Sets the FamilyName value.
        Parameters:
        familyName - the family name to set
      • getWeight

        public java.lang.String getWeight()
        Returns the Weight value.
        Returns:
        the weight
      • setWeight

        public void setWeight​(java.lang.String weight)
        Sets the Weight value.
        Parameters:
        weight - the weight to set
      • getFontBBox

        public java.awt.geom.RectangularShape getFontBBox()
        Returns the FontBBox value.
        Returns:
        the font's bounding box
      • getFontBBoxAsIntArray

        public int[] getFontBBoxAsIntArray()
        Returns the FontBBox value as integer array.
        Returns:
        the font's bounding box
      • setFontBBox

        public void setFontBBox​(java.awt.geom.RectangularShape fontBBox)
        Sets the FontBBox value.
        Parameters:
        fontBBox - the fontBBox to set
      • getEncodingScheme

        public java.lang.String getEncodingScheme()
        Returns the EncodingScheme value.
        Returns:
        the encoding scheme
      • setEncodingScheme

        public void setEncodingScheme​(java.lang.String encodingScheme)
        Sets the EncodingScheme value
        Parameters:
        encodingScheme - the encodingScheme to set
      • getCharacterSet

        public java.lang.String getCharacterSet()
        Returns the CharacterSet value.
        Returns:
        the characterSet
      • setCharacterSet

        public void setCharacterSet​(java.lang.String characterSet)
        Sets the CharacterSet value.
        Parameters:
        characterSet - the characterSet to set
      • getCapHeight

        public java.lang.Number getCapHeight()
        Returns the CapHeight value.
        Returns:
        the capHeight
      • setCapHeight

        public void setCapHeight​(java.lang.Number capHeight)
        Sets the CapHeight value.
        Parameters:
        capHeight - the capHeight to set
      • getXHeight

        public java.lang.Number getXHeight()
        Returns the XHeight value.
        Returns:
        the xHeight
      • setXHeight

        public void setXHeight​(java.lang.Number height)
        Sets the XHeight value.
        Parameters:
        height - the xHeight to set
      • getAscender

        public java.lang.Number getAscender()
        Returns the Ascender value.
        Returns:
        the ascender
      • setAscender

        public void setAscender​(java.lang.Number ascender)
        Sets the Ascender value.
        Parameters:
        ascender - the ascender to set
      • getDescender

        public java.lang.Number getDescender()
        Returns the Descender value.
        Returns:
        the descender
      • setDescender

        public void setDescender​(java.lang.Number descender)
        Sets the Descender value.
        Parameters:
        descender - the descender to set
      • getStdHW

        public java.lang.Number getStdHW()
        Returns the StdHW value.
        Returns:
        the descender
      • setStdHW

        public void setStdHW​(java.lang.Number stdHW)
        Sets the StdHW value.
        Parameters:
        stdHW - the StdHW to set
      • getStdVW

        public java.lang.Number getStdVW()
        Returns the StdVW value.
        Returns:
        the descender
      • setStdVW

        public void setStdVW​(java.lang.Number stdVW)
        Sets the StdVW value.
        Parameters:
        stdVW - the StdVW to set
      • getWritingDirectionMetrics

        public AFMWritingDirectionMetrics getWritingDirectionMetrics​(int index)
        Gets writing direction metrics.
        Parameters:
        index - the writing direction (0, 1 or 2)
        Returns:
        the writing direction metrics
      • setWritingDirectionMetrics

        public void setWritingDirectionMetrics​(int index,
                                               AFMWritingDirectionMetrics metrics)
        Sets writing direction metrics.
        Parameters:
        index - the writing direction (0, 1 or 2)
        metrics - the writing direction metrics
      • addCharMetrics

        public void addCharMetrics​(AFMCharMetrics metrics)
        Adds new character metrics.
        Parameters:
        metrics - the character metrics
      • getCharCount

        public int getCharCount()
        Returns the number of character available for this font.
        Returns:
        the number of character
      • getFirstChar

        public int getFirstChar()
        Returns the first character index in the encoding that has a glyph.
        Returns:
        the first character index with a glyph
      • getLastChar

        public int getLastChar()
        Returns the last character index in the encoding that has a glyph.
        Returns:
        the last character index with a glyph
      • getChar

        public AFMCharMetrics getChar​(java.lang.String name)
        Returns the character metrics associated with the character name.
        Parameters:
        name - the character name
        Returns:
        the character metrics or null if there's no such character
      • getCharMetrics

        public java.util.List<AFMCharMetrics> getCharMetrics()
        Returns the list of AFMCharMetrics instances representing all the available characters.
        Returns:
        a List of AFMCharMetrics instances
      • addXKerning

        public void addXKerning​(java.lang.String name1,
                                java.lang.String name2,
                                double kx)
        Adds a X-kerning entry.
        Parameters:
        name1 - the name of the first character
        name2 - the name of the second character
        kx - kerning value in x-direction
      • hasKerning

        public boolean hasKerning()
        Indicates whether the font has kerning information.
        Returns:
        true if there is kerning information
      • createXKerningMapEncoded

        public java.util.Map<java.lang.Integer,​java.util.Map<java.lang.Integer,​java.lang.Integer>> createXKerningMapEncoded()
        Creates and returns a kerning map for writing mode 0 (ltr) with character codes.
        Returns:
        the kerning map or null if there is no kerning information.
      • overridePrimaryEncoding

        public void overridePrimaryEncoding​(SingleByteEncoding encoding)
        The character codes in an AFM cannot always be trusted to be the same values as in the font's primary encoding. Therefore, we provide a way to override this primary encoding.
        Parameters:
        encoding - the encoding to replace the one given in the AFM
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object