org.apache.fop.fonts

## Class CIDSubset

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

- All Implemented Interfaces:
    CIDSet

      public class CIDSubset
      extends java.lang.Object
      implements CIDSet

  Provides methods to get font information. Naming: glyph index: original index of the glyph in the non-subset font (!= unicode index) character selector: index into a set of glyphs. For subset CID fonts, this starts at 0. For non-subset fonts, this is the same as the glyph index. Unicode index: The Unicode codepoint of a character. Glyph name: the Adobe glyph name (as found in Glyphs.java)

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CIDSubset(MultiByteFont mbf)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `char[]` | `getChars()` Returns a char array containing all Unicode characters that are in the subset.
    `int` | `getGIDFromChar(char ch)` Returns the glyph index from the original font from a character
    `java.util.BitSet` | `getGlyphIndices()` Returns a BitSet with bits set for each available glyph index in the subset.
    `java.util.Map<java.lang.Integer,java.lang.Integer>` | `getGlyphs()` Returns an unmodifiable Map of the font subset.
    `int` | `getNumberOfGlyphs()` Returns the number of glyphs in the subset.
    `int` | `getOriginalGlyphIndex(int index)` Returns the original index of the glyph inside the (non-subset) font's glyph list.
    `int` | `getUnicode(int index)` Returns the Unicode value for a subset index (character selector).
    `char` | `getUnicodeFromGID(int glyphIndex)` Gets the unicode character from the original font glyph index
    `int[]` | `getWidths()` Return the array of widths.
    `int` | `mapChar(int glyphIndex, char unicode)` Maps a character to a character selector for a font subset.
    `int` | `mapCodePoint(int glyphIndex, int codePoint)` Maps a character to a character selector for a font subset.

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

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

- - ### Constructor Detail

    - #### CIDSubset

          public CIDSubset(MultiByteFont mbf)

  - ### Method Detail

    - #### getOriginalGlyphIndex

          public int getOriginalGlyphIndex(int index)

      Returns the original index of the glyph inside the (non-subset) font's glyph list. This index can be used to access the character width information, for example.
      Specified by:
        `getOriginalGlyphIndex` in interface `CIDSet`
      Parameters:
        `index` - the subset index (character selector) to access the glyph
      Returns:
        the original index (or -1 if no glyph index is available for the subset index)

    - #### getUnicode

          public int getUnicode(int index)

      Returns the Unicode value for a subset index (character selector). If there's no such Unicode value, the "NOT A CHARACTER" (0xFFFF) is returned.
      Specified by:
        `getUnicode` in interface `CIDSet`
      Parameters:
        `index` - the subset index (character selector)
      Returns:
        the Unicode value or "NOT A CHARACTER" (0xFFFF)

    - #### mapChar

          public int mapChar(int glyphIndex,
                             char unicode)

      Maps a character to a character selector for a font subset. If the character isn't in the subset, yet, it is added and a new character selector returned. Otherwise, the already allocated character selector is returned from the existing map/subset.
      Specified by:
        `mapChar` in interface `CIDSet`
      Parameters:
        `glyphIndex` - the glyph index of the character
        `unicode` - the Unicode index of the character
      Returns:
        the subset index

    - #### mapCodePoint

          public int mapCodePoint(int glyphIndex,
                                  int codePoint)

      Maps a character to a character selector for a font subset. If the character isn't in the subset yet, it is added and a new character selector returned. Otherwise, the already allocated character selector is returned from the existing map/subset.
      Specified by:
        `mapCodePoint` in interface `CIDSet`
      Parameters:
        `glyphIndex` - the glyph index of the character
        `codePoint` - the Unicode index of the character
      Returns:
        the subset index

    - #### getGlyphs

          public java.util.Map<java.lang.Integer,java.lang.Integer> getGlyphs()

      Returns an unmodifiable Map of the font subset. It maps from glyph index to character selector (i.e. the subset index in this case).
      Specified by:
        `getGlyphs` in interface `CIDSet`
      Returns:
        Map Map<Integer, Integer> of the font subset

    - #### getUnicodeFromGID

          public char getUnicodeFromGID(int glyphIndex)

      Gets the unicode character from the original font glyph index
      Specified by:
        `getUnicodeFromGID` in interface `CIDSet`
      Parameters:
        `glyphIndex` - The original glyph index of the character in the font
      Returns:
        The character represented by the passed GID

    - #### getGIDFromChar

          public int getGIDFromChar(char ch)

      Returns the glyph index from the original font from a character
      Specified by:
        `getGIDFromChar` in interface `CIDSet`
      Parameters:
        `ch` - The character
      Returns:
        The glyph index in the original font.

    - #### getChars

          public char[] getChars()

      Returns a char array containing all Unicode characters that are in the subset.
      Specified by:
        `getChars` in interface `CIDSet`
      Returns:
        a char array with all used Unicode characters

    - #### getNumberOfGlyphs

          public int getNumberOfGlyphs()

      Returns the number of glyphs in the subset.
      Specified by:
        `getNumberOfGlyphs` in interface `CIDSet`
      Returns:
        the number of glyphs in the subset

    - #### getGlyphIndices

          public java.util.BitSet getGlyphIndices()

      Returns a BitSet with bits set for each available glyph index in the subset.
      Specified by:
        `getGlyphIndices` in interface `CIDSet`
      Returns:
        a BitSet indicating available glyph indices

    - #### getWidths

          public int[] getWidths()

      Return the array of widths.

      This is used to get an array for inserting in an output format. It should not be used for lookup.

      Specified by:
        `getWidths` in interface `CIDSet`
      Returns:
        an array of widths

Copyright 1999-2022 The Apache Software Foundation. All Rights Reserved.