org.apache.fop.afp.fonts

## Class AbstractOutlineFont

- java.lang.Object
- - org.apache.fop.fonts.Typeface
  - - org.apache.fop.afp.fonts.AFPFont
    - - org.apache.fop.afp.fonts.AbstractOutlineFont

- All Implemented Interfaces:
    FontMetrics
  Direct Known Subclasses:
    DoubleByteFont, OutlineFont

      public abstract class AbstractOutlineFont
      extends AFPFont

  A font defined as a set of lines and curves as opposed to a bitmap font. An outline font can be scaled to any size and otherwise transformed more easily than a bitmap font, and with more attractive results.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected CharacterSet` | `charSet` The character set for this font

    - ### Fields inherited from class org.apache.fop.afp.fonts.AFPFont

      `name`

    - ### Fields inherited from class org.apache.fop.fonts.Typeface

      `eventListener, NOT_FOUND`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractOutlineFont(String name, boolean embeddable, CharacterSet charSet, AFPEventProducer eventProducer)` Constructor for an outline font.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getAscender(int size)` The ascender is the part of a lowercase letter that extends above the "x-height" (the height of the letter "x"), such as "d", "t", or "h".
    `int` | `getCapHeight(int size)` Obtains the height of capital letters for the specified point size.
    `CharacterSet` | `getCharacterSet()` Get the character set metrics.
    `CharacterSet` | `getCharacterSet(int size)` Get the character set metrics.
    `int` | `getDescender(int size)` The descender is the part of a lowercase letter that extends below the base line, such as "g", "j", or "p".
    `String` | `getEncodingName()` Get the encoding of the font.
    `int` | `getUnderlinePosition(int size)` Returns the distance from the baseline to the center of the underline (negative value indicates below baseline).
    `int` | `getUnderlineThickness(int size)` Returns the thickness of the underline.
    `int` | `getXHeight(int size)` The "x-height" (the height of the letter "x").
    `boolean` | `hasChar(char c)` Determines whether this font contains a particular character/glyph.
    `char` | `mapChar(char c)` Map a Unicode character to a code point in the font.

    - ### Methods inherited from class org.apache.fop.afp.fonts.AFPFont

      `getBoundingBox, getEmbedFontName, getFamilyNames, getFontName, getFontType, getFontURI, getFullName, getKerningInfo, getStrikeoutPosition, getStrikeoutThickness, getWidths, hasKerningInfo, isEmbeddable, toString, toUnicodeCodepoint`

    - ### Methods inherited from class org.apache.fop.fonts.Typeface

      `getMaxAscent, hadMappingOperations, hasFeature, isCID, isMultiByte, notifyMapOperation, setEventListener, warnMissingGlyph`

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

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

    - ### Methods inherited from interface org.apache.fop.fonts.FontMetrics

      `getWidth`

- - ### Field Detail

    - #### charSet

          protected CharacterSet charSet

      The character set for this font

  - ### Constructor Detail

    - #### AbstractOutlineFont

          public AbstractOutlineFont(String name,
                                     boolean embeddable,
                                     CharacterSet charSet,
                                     AFPEventProducer eventProducer)

      Constructor for an outline font.
      Parameters:
        `name` - the name of the font
        `embeddable` - sets whether or not this font is to be embedded
        `charSet` - the chracter set
        `eventProducer` - The object to handle any events which occur from the object.

  - ### Method Detail

    - #### getCharacterSet

          public CharacterSet getCharacterSet()

      Get the character set metrics.
      Returns:
        the character set

    - #### getCharacterSet

          public CharacterSet getCharacterSet(int size)

      Get the character set metrics.
      Specified by:
        `getCharacterSet` in class `AFPFont`
      Parameters:
        `size` - ignored
      Returns:
        the character set

    - #### getAscender

          public int getAscender(int size)

      The ascender is the part of a lowercase letter that extends above the "x-height" (the height of the letter "x"), such as "d", "t", or "h". Also used to denote the part of the letter extending above the x-height.
      Parameters:
        `size` - the font size (in mpt)
      Returns:
        the ascender for the given size

    - #### getUnderlinePosition

          public int getUnderlinePosition(int size)

      Returns the distance from the baseline to the center of the underline (negative value indicates below baseline).
      Parameters:
        `size` - font size
      Returns:
        the position in 1/1000ths of the font size

    - #### getUnderlineThickness

          public int getUnderlineThickness(int size)

      Description copied from class: `AFPFont`
      Returns the thickness of the underline.
      Specified by:
        `getUnderlineThickness` in interface `FontMetrics`
      Overrides:
        `getUnderlineThickness` in class `AFPFont`
      Parameters:
        `size` - font size
      Returns:
        the thickness in 1/1000ths of the font size

    - #### getCapHeight

          public int getCapHeight(int size)

      Obtains the height of capital letters for the specified point size.
      Parameters:
        `size` - the font size (in mpt)
      Returns:
        the cap height for the given size

    - #### getDescender

          public int getDescender(int size)

      The descender is the part of a lowercase letter that extends below the base line, such as "g", "j", or "p". Also used to denote the part of the letter extending below the base line.
      Parameters:
        `size` - the font size (in mpt)
      Returns:
        the descender for the given size

    - #### getXHeight

          public int getXHeight(int size)

      The "x-height" (the height of the letter "x").
      Parameters:
        `size` - the font size (in mpt)
      Returns:
        the x height for the given size

    - #### hasChar

          public boolean hasChar(char c)

      Determines whether this font contains a particular character/glyph.
      Specified by:
        `hasChar` in class `Typeface`
      Parameters:
        `c` - character to check
      Returns:
        True if the character is supported, Falso otherwise

    - #### mapChar

          public char mapChar(char c)

      Map a Unicode character to a code point in the font.
      Specified by:
        `mapChar` in class `Typeface`
      Parameters:
        `c` - character to map
      Returns:
        the mapped character

    - #### getEncodingName

          public String getEncodingName()

      Get the encoding of the font.
      Specified by:
        `getEncodingName` in class `Typeface`
      Returns:
        the encoding

Copyright © 2025 Apache Software Foundation. All rights reserved.