Class CIDSubset

java.lang.Object
org.docx4j.fonts.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 Description
    CIDSubset​(MultiByteFont mbf)  
  • Method Summary

    Modifier and Type Method 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 Details

  • Method Details

    • 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