org.apache.fop.fonts

## Class CIDSubset

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

All Implemented Interfaces:
  CIDSet

    public class CIDSubset
    extends 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
`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
`BitSet` `getGlyphIndices()` Returns a BitSet with bits set for each available glyph index in the subset.
`Map<Integer,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 Map<Integer,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 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