org.apache.fop.afp.fonts

## Class CharacterSet

- java.lang.Object
- - org.apache.fop.afp.fonts.CharacterSet

- Direct Known Subclasses:
    FopCharacterSet

      public class CharacterSet
      extends Object

  The IBM Font Object Content Architecture (FOCA) supports presentation of character shapes by defining their characteristics, which include font description information for identifying the characters, font metric information for positioning the characters, and character shape information for presenting the character images.
  Presenting a graphic character on a presentation surface requires information on the rotation and position of character on the physical or logical page.
  This class proivdes font metric information for a particular font as identified by the character set name. This information is obtained directly from the AFP font files which must be installed in the path specified in the afp-fonts xml definition file.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected String` | `codePage` The code page to which the character set relates
    `static String` | `DEFAULT_CODEPAGE` default codepage
    `static String` | `DEFAULT_ENCODING` default encoding
    `protected String` | `encoding` The encoding used for the code page
    `protected static org.apache.commons.logging.Log` | `LOG` Static logging instance
    `protected String` | `name` The character set relating to the font
    `static int` | `SUPPORTED_ORIENTATION` The current orientation (currently only 0 is supported by FOP)

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCharacterSetOrientation(CharacterSetOrientation cso)` Add character set metric information for the different orientations
    `CharactersetEncoder.EncodedChars` | `encodeChars(CharSequence chars)` Encodes a character sequence to a byte array.
    `int` | `getAscender()` Ascender height is the distance from the character baseline to the top of the character box.
    `int` | `getCapHeight()` Cap height is the average height of the uppercase characters in a font.
    `Rectangle` | `getCharacterBox(char character, int size)`
    `String` | `getCodePage()` Returns the AFP code page identifier
    `int` | `getDescender()` Descender depth is the distance from the character baseline to the bottom of a character box.
    `int` | `getEmSpaceIncrement()` Returns the increment for an em space.
    `String` | `getEncoding()` Returns the AFP code page encoding
    `String` | `getName()` Returns the AFP character set identifier
    `byte[]` | `getNameBytes()` Returns the AFP character set identifier as a byte array
    `int` | `getNominalCharIncrement()` Returns the nominal character increment.
    `int` | `getNominalVerticalSize()` Returns the nominal vertical size of the font in the case of bitmap fonts.
    `AFPResourceAccessor` | `getResourceAccessor()` Returns the resource accessor to load the font resources with.
    `int` | `getSpaceIncrement()` Returns the increment for an space.
    `int` | `getUnderscorePosition()` Return the position for an underscore (_) character.
    `int` | `getUnderscoreWidth()` Return the width to use for an underscore (_) character.
    `int` | `getWidth(char character, int size)` Get the width (in 1/1000ths of a point size) of the character identified by the parameter passed.
    `int` | `getXHeight()` XHeight refers to the height of the lower case letters above the baseline.
    `boolean` | `hasChar(char c)` Indicates whether the given char in the character set.
    `char` | `mapChar(char c)` Map a Unicode character to a code point in the font.
    `void` | `setNominalVerticalSize(int nominalVerticalSize)` Sets the nominal vertical size of the font in the case of bitmap fonts.

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

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

- - ### Field Detail

    - #### LOG

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

      Static logging instance

    - #### DEFAULT_CODEPAGE

          public static final String DEFAULT_CODEPAGE

      default codepage
      See Also:
        Constant Field Values

    - #### DEFAULT_ENCODING

          public static final String DEFAULT_ENCODING

      default encoding
      See Also:
        Constant Field Values

    - #### SUPPORTED_ORIENTATION

          public static final int SUPPORTED_ORIENTATION

      The current orientation (currently only 0 is supported by FOP)
      See Also:
        Constant Field Values

    - #### codePage

          protected final String codePage

      The code page to which the character set relates

    - #### encoding

          protected final String encoding

      The encoding used for the code page

    - #### name

          protected final String name

      The character set relating to the font

  - ### Method Detail

    - #### addCharacterSetOrientation

          public void addCharacterSetOrientation(CharacterSetOrientation cso)

      Add character set metric information for the different orientations
      Parameters:
        `cso` - the metrics for the orientation

    - #### setNominalVerticalSize

          public void setNominalVerticalSize(int nominalVerticalSize)

      Sets the nominal vertical size of the font in the case of bitmap fonts.
      Parameters:
        `nominalVerticalSize` - the nominal vertical size (in millipoints)

    - #### getNominalVerticalSize

          public int getNominalVerticalSize()

      Returns the nominal vertical size of the font in the case of bitmap fonts. For outline fonts, zero is returned, because these are scalable fonts.
      Returns:
        the nominal vertical size (in millipoints) for bitmap fonts, or 0 for outline fonts.

    - #### getAscender

          public int getAscender()

      Ascender height is the distance from the character baseline to the top of the character box. A negative ascender height signifies that all of the graphic character is below the character baseline. For a character rotation other than 0, ascender height loses its meaning when the character is lying on its side or is upside down with respect to normal viewing orientation. For the general case, Ascender Height is the characters most positive y-axis value. For bounded character boxes, for a given character having an ascender, ascender height and baseline offset are equal.
      Returns:
        the ascender value in millipoints

    - #### getUnderscoreWidth

          public int getUnderscoreWidth()

      Return the width to use for an underscore (_) character.
      Returns:
        the width of an underscore character

    - #### getUnderscorePosition

          public int getUnderscorePosition()

      Return the position for an underscore (_) character.
      Returns:
        the position of an underscore character

    - #### getCapHeight

          public int getCapHeight()

      Cap height is the average height of the uppercase characters in a font. This value is specified by the designer of a font and is usually the height of the uppercase M.
      Returns:
        the cap height value in millipoints

    - #### getDescender

          public int getDescender()

      Descender depth is the distance from the character baseline to the bottom of a character box. A negative descender depth signifies that all of the graphic character is above the character baseline.
      Returns:
        the descender value in millipoints

    - #### getResourceAccessor

          public AFPResourceAccessor getResourceAccessor()

      Returns the resource accessor to load the font resources with.
      Returns:
        the resource accessor to load the font resources with

    - #### getXHeight

          public int getXHeight()

      XHeight refers to the height of the lower case letters above the baseline.
      Returns:
        the typical height of characters

    - #### getWidth

          public int getWidth(char character,
                              int size)

      Get the width (in 1/1000ths of a point size) of the character identified by the parameter passed.
      Parameters:
        `character` - the Unicode character from which the width will be calculated
        `size` - the font size
      Returns:
        the width of the character

    - #### getCharacterBox

          public Rectangle getCharacterBox(char character,
                                           int size)

    - #### getName

          public String getName()

      Returns the AFP character set identifier
      Returns:
        the AFP character set identifier

    - #### getNameBytes

          public byte[] getNameBytes()

      Returns the AFP character set identifier as a byte array
      Returns:
        the AFP character set identifier as a byte array

    - #### getCodePage

          public String getCodePage()

      Returns the AFP code page identifier
      Returns:
        the AFP code page identifier

    - #### getEncoding

          public String getEncoding()

      Returns the AFP code page encoding
      Returns:
        the AFP code page encoding

    - #### hasChar

          public boolean hasChar(char c)

      Indicates whether the given char in the character set.
      Parameters:
        `c` - the character to check
      Returns:
        true if the character is in the character set

    - #### encodeChars

          public CharactersetEncoder.EncodedChars encodeChars(CharSequence chars)
                                                       throws CharacterCodingException

      Encodes a character sequence to a byte array.
      Parameters:
        `chars` - the characters
      Returns:
        the encoded characters
      Throws:
        `CharacterCodingException` - if the encoding operation fails

    - #### mapChar

          public char mapChar(char c)

      Map a Unicode character to a code point in the font. The code tables are already converted to Unicode therefore we can use the identity mapping.
      Parameters:
        `c` - the Unicode character to map
      Returns:
        the mapped character

    - #### getSpaceIncrement

          public int getSpaceIncrement()

      Returns the increment for an space.
      Returns:
        the space increment

    - #### getEmSpaceIncrement

          public int getEmSpaceIncrement()

      Returns the increment for an em space.
      Returns:
        the em space increment

    - #### getNominalCharIncrement

          public int getNominalCharIncrement()

      Returns the nominal character increment.
      Returns:
        the nominal character increment

Copyright © 2025 Apache Software Foundation. All rights reserved.