org.apache.fop.fonts.type1

## Class AFMFile

- java.lang.Object
- - org.apache.fop.fonts.type1.AFMFile

-     public class AFMFile
      extends Object

  Represents the contents of a Type 1 AFM font metrics file.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AFMFile()` Default constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCharMetrics(AFMCharMetrics metrics)` Adds new character metrics.
    `void` | `addXKerning(String name1, String name2, double kx)` Adds a X-kerning entry.
    `Map<Integer,Map<Integer,Integer>>` | `createXKerningMapEncoded()` Creates and returns a kerning map for writing mode 0 (ltr) with character codes.
    `Number` | `getAscender()` Returns the Ascender value.
    `Number` | `getCapHeight()` Returns the CapHeight value.
    `AFMCharMetrics` | `getChar(String name)` Returns the character metrics associated with the character name.
    `String` | `getCharacterSet()` Returns the CharacterSet value.
    `int` | `getCharCount()` Returns the number of character available for this font.
    `List<AFMCharMetrics>` | `getCharMetrics()` Returns the list of AFMCharMetrics instances representing all the available characters.
    `Number` | `getDescender()` Returns the Descender value.
    `String` | `getEncodingScheme()` Returns the EncodingScheme value.
    `String` | `getFamilyName()` Returns the FamilyName value.
    `int` | `getFirstChar()` Returns the first character index in the encoding that has a glyph.
    `RectangularShape` | `getFontBBox()` Returns the FontBBox value.
    `int[]` | `getFontBBoxAsIntArray()` Returns the FontBBox value as integer array.
    `String` | `getFontName()` Returns the FontName value.
    `String` | `getFullName()` Returns the FullName value.
    `int` | `getLastChar()` Returns the last character index in the encoding that has a glyph.
    `Number` | `getStdHW()` Returns the StdHW value.
    `Number` | `getStdVW()` Returns the StdVW value.
    `String` | `getWeight()` Returns the Weight value.
    `AFMWritingDirectionMetrics` | `getWritingDirectionMetrics(int index)` Gets writing direction metrics.
    `Number` | `getXHeight()` Returns the XHeight value.
    `boolean` | `hasKerning()` Indicates whether the font has kerning information.
    `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.
    `void` | `setAscender(Number ascender)` Sets the Ascender value.
    `void` | `setCapHeight(Number capHeight)` Sets the CapHeight value.
    `void` | `setCharacterSet(String characterSet)` Sets the CharacterSet value.
    `void` | `setDescender(Number descender)` Sets the Descender value.
    `void` | `setEncodingScheme(String encodingScheme)` Sets the EncodingScheme value
    `void` | `setFamilyName(String familyName)` Sets the FamilyName value.
    `void` | `setFontBBox(RectangularShape fontBBox)` Sets the FontBBox value.
    `void` | `setFontName(String fontName)` Sets the FontName value.
    `void` | `setFullName(String fullName)` Sets the FullName value.
    `void` | `setStdHW(Number stdHW)` Sets the StdHW value.
    `void` | `setStdVW(Number stdVW)` Sets the StdVW value.
    `void` | `setWeight(String weight)` Sets the Weight value.
    `void` | `setWritingDirectionMetrics(int index, AFMWritingDirectionMetrics metrics)` Sets writing direction metrics.
    `void` | `setXHeight(Number height)` Sets the XHeight value.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### AFMFile

          public AFMFile()

      Default constructor.

  - ### Method Detail

    - #### getFontName

          public String getFontName()

      Returns the FontName value.
      Returns:
        the font name

    - #### setFontName

          public void setFontName(String fontName)

      Sets the FontName value.
      Parameters:
        `fontName` - the font name to set

    - #### getFullName

          public String getFullName()

      Returns the FullName value.
      Returns:
        the full name of the font

    - #### setFullName

          public void setFullName(String fullName)

      Sets the FullName value.
      Parameters:
        `fullName` - the full name to set

    - #### getFamilyName

          public String getFamilyName()

      Returns the FamilyName value.
      Returns:
        the family name of the font

    - #### setFamilyName

          public void setFamilyName(String familyName)

      Sets the FamilyName value.
      Parameters:
        `familyName` - the family name to set

    - #### getWeight

          public String getWeight()

      Returns the Weight value.
      Returns:
        the weight

    - #### setWeight

          public void setWeight(String weight)

      Sets the Weight value.
      Parameters:
        `weight` - the weight to set

    - #### getFontBBox

          public 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(RectangularShape fontBBox)

      Sets the FontBBox value.
      Parameters:
        `fontBBox` - the fontBBox to set

    - #### getEncodingScheme

          public String getEncodingScheme()

      Returns the EncodingScheme value.
      Returns:
        the encoding scheme

    - #### setEncodingScheme

          public void setEncodingScheme(String encodingScheme)

      Sets the EncodingScheme value
      Parameters:
        `encodingScheme` - the encodingScheme to set

    - #### getCharacterSet

          public String getCharacterSet()

      Returns the CharacterSet value.
      Returns:
        the characterSet

    - #### setCharacterSet

          public void setCharacterSet(String characterSet)

      Sets the CharacterSet value.
      Parameters:
        `characterSet` - the characterSet to set

    - #### getCapHeight

          public Number getCapHeight()

      Returns the CapHeight value.
      Returns:
        the capHeight

    - #### setCapHeight

          public void setCapHeight(Number capHeight)

      Sets the CapHeight value.
      Parameters:
        `capHeight` - the capHeight to set

    - #### getXHeight

          public Number getXHeight()

      Returns the XHeight value.
      Returns:
        the xHeight

    - #### setXHeight

          public void setXHeight(Number height)

      Sets the XHeight value.
      Parameters:
        `height` - the xHeight to set

    - #### getAscender

          public Number getAscender()

      Returns the Ascender value.
      Returns:
        the ascender

    - #### setAscender

          public void setAscender(Number ascender)

      Sets the Ascender value.
      Parameters:
        `ascender` - the ascender to set

    - #### getDescender

          public Number getDescender()

      Returns the Descender value.
      Returns:
        the descender

    - #### setDescender

          public void setDescender(Number descender)

      Sets the Descender value.
      Parameters:
        `descender` - the descender to set

    - #### getStdHW

          public Number getStdHW()

      Returns the StdHW value.
      Returns:
        the descender

    - #### setStdHW

          public void setStdHW(Number stdHW)

      Sets the StdHW value.
      Parameters:
        `stdHW` - the StdHW to set

    - #### getStdVW

          public Number getStdVW()

      Returns the StdVW value.
      Returns:
        the descender

    - #### setStdVW

          public void setStdVW(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(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 List<AFMCharMetrics> getCharMetrics()

      Returns the list of AFMCharMetrics instances representing all the available characters.
      Returns:
        a List of AFMCharMetrics instances

    - #### addXKerning

          public void addXKerning(String name1,
                                  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 Map<Integer,Map<Integer,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 String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2025 Apache Software Foundation. All rights reserved.