org.apache.fop.fonts

## Class Typeface

- java.lang.Object
- - org.apache.fop.fonts.Typeface

- All Implemented Interfaces:
    FontMetrics
  Direct Known Subclasses:
    AFPFont, Base14Font, CustomFont, CustomFontMetricsMapper, LazyFont, SystemFontMetricsMapper

      public abstract class Typeface
      extends Object
      implements FontMetrics

  Base class for font classes

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected FontEventListener` | `eventListener` An optional event listener that receives events such as missing glyphs etc.
    `static char` | `NOT_FOUND` Code point that is used if no code point for a specific character has been found.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Typeface()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract String` | `getEncodingName()` Get the encoding of the font.
    `int` | `getMaxAscent(int size)` Returns the maximum ascent of the font described by this FontMetrics object.
    `boolean` | `hadMappingOperations()` Indicates whether this font had to do any character mapping operations.
    `abstract boolean` | `hasChar(char c)` Determines whether this font contains a particular character/glyph.
    `boolean` | `hasFeature(int tableType, String script, String language, String feature)` Determine if metrics supports specific feature in specified font table.
    `boolean` | `isCID()`
    `boolean` | `isMultiByte()` Determines whether the font is a multibyte font.
    `abstract char` | `mapChar(char c)` Map a Unicode character to a code point in the font.
    `protected void` | `notifyMapOperation()` Used for keeping track of character mapping operations in order to determine if a font was used at all or not.
    `void` | `setEventListener(FontEventListener listener)` Sets the font event listener that can be used to receive events about particular events in this class.
    `String` | `toString()`
    `protected void` | `warnMissingGlyph(char c)` Provide proper warning if a glyph is not available.

    - ### 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

      `getAscender, getBoundingBox, getCapHeight, getDescender, getEmbedFontName, getFamilyNames, getFontName, getFontType, getFontURI, getFullName, getKerningInfo, getStrikeoutPosition, getStrikeoutThickness, getUnderlinePosition, getUnderlineThickness, getWidth, getWidths, getXHeight, hasKerningInfo`

- - ### Field Detail

    - #### NOT_FOUND

          public static final char NOT_FOUND

      Code point that is used if no code point for a specific character has been found.
      See Also:
        Constant Field Values

    - #### eventListener

          protected FontEventListener eventListener

      An optional event listener that receives events such as missing glyphs etc.

  - ### Constructor Detail

    - #### Typeface

          public Typeface()

  - ### Method Detail

    - #### getEncodingName

          public abstract String getEncodingName()

      Get the encoding of the font.
      Returns:
        the encoding

    - #### mapChar

          public abstract char mapChar(char c)

      Map a Unicode character to a code point in the font.
      Parameters:
        `c` - character to map
      Returns:
        the mapped character

    - #### notifyMapOperation

          protected void notifyMapOperation()

      Used for keeping track of character mapping operations in order to determine if a font was used at all or not.

    - #### hadMappingOperations

          public boolean hadMappingOperations()

      Indicates whether this font had to do any character mapping operations. If that was not the case, it's an indication that the font has never actually been used.
      Returns:
        true if the font had to do any character mapping operations

    - #### hasChar

          public abstract boolean hasChar(char c)

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

    - #### isMultiByte

          public boolean isMultiByte()

      Determines whether the font is a multibyte font.
      Specified by:
        `isMultiByte` in interface `FontMetrics`
      Returns:
        True if it is multibyte

    - #### isCID

          public boolean isCID()

    - #### getMaxAscent

          public int getMaxAscent(int size)

      Returns the maximum ascent of the font described by this FontMetrics object. Note: This is not the same as getAscender().
      Specified by:
        `getMaxAscent` in interface `FontMetrics`
      Parameters:
        `size` - font size
      Returns:
        ascent in milliponts

    - #### hasFeature

          public boolean hasFeature(int tableType,
                                    String script,
                                    String language,
                                    String feature)

      Determine if metrics supports specific feature in specified font table.
      Specified by:
        `hasFeature` in interface `FontMetrics`
      Parameters:
        `tableType` - type of table (GSUB, GPOS, ...), see GlyphTable.GLYPH_TABLE_TYPE_*
        `script` - to qualify feature lookup
        `language` - to qualify feature lookup
        `feature` - to test
      Returns:
        true if feature supported (and has at least one lookup)

    - #### setEventListener

          public void setEventListener(FontEventListener listener)

      Sets the font event listener that can be used to receive events about particular events in this class.
      Parameters:
        `listener` - the font event listener

    - #### warnMissingGlyph

          protected void warnMissingGlyph(char c)

      Provide proper warning if a glyph is not available.
      Parameters:
        `c` - the character which is missing.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2025 Apache Software Foundation. All rights reserved.