RasterFont (Apache FOP Core 2.11 API)
Date: 2025-04-24

org.apache.fop.afp.fonts

## Class RasterFont

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

- All Implemented Interfaces:
    FontMetrics

      public class RasterFont
      extends AFPFont

  A font where each character is stored as an array of pixels (a bitmap). Such fonts are not easily scalable, in contrast to vectored fonts. With this type of font, the font metrics information is held in character set files (one for each size and style).

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static org.apache.commons.logging.Log` | `LOG` Static logging instance

    - ### 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
    `RasterFont(String name, boolean embeddable)` Constructor for the raster font requires the name, weight and style attribute to be available as this forms the key to the font.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCharacterSet(int size, CharacterSet characterSet)` Adds the character set for the given point size
    `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".
    `Rectangle` | `getBoundingBox(int character, int size)` TODO
    `int` | `getCapHeight(int size)` Obtains the height of capital letters for the specified point size.
    `CharacterSet` | `getCharacterSet(int sizeInMpt)` Get the character set metrics for the specified point size.
    `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` | `getWidth(int character, int size)` Obtain the width of the character for the specified point size.
    `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

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

- - ### Field Detail

    - #### LOG

          protected static final org.apache.commons.logging.Log LOG

      Static logging instance

  - ### Constructor Detail

    - #### RasterFont

          public RasterFont(String name,
                            boolean embeddable)

      Constructor for the raster font requires the name, weight and style attribute to be available as this forms the key to the font.
      Parameters:
        `name` - the name of the font
        `embeddable` - `true` if the font is embeddable

  - ### Method Detail

    - #### addCharacterSet

          public void addCharacterSet(int size,
                                      CharacterSet characterSet)

      Adds the character set for the given point size
      Parameters:
        `size` - point size (in mpt)
        `characterSet` - character set

    - #### getCharacterSet

          public CharacterSet getCharacterSet(int sizeInMpt)

      Get the character set metrics for the specified point size.
      Specified by:
        `getCharacterSet` in class `AFPFont`
      Parameters:
        `sizeInMpt` - the point size (in mpt)
      Returns:
        the character set metrics

    - #### 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 point 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 specified point 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 specified point 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 point size

    - #### getWidth

          public int getWidth(int character,
                              int size)

      Obtain the width of the character for the specified point size.
      Parameters:
        `character` - the character
        `size` - the font size (in mpt)
      Returns:
        the width for the given point size

    - #### getBoundingBox

          public Rectangle getBoundingBox(int character,
                                          int size)

      TODO
      Specified by:
        `getBoundingBox` in interface `FontMetrics`
      Specified by:
        `getBoundingBox` in class `AFPFont`
      Parameters:
        `character` - glyph index
        `size` - font size
      Returns:
        the scaled bounding box scaled in 1/1000ths of 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.