fop 1.1

## org.apache.fop.fonts
Class Font

    java.lang.Object
      org.apache.fop.fonts.Font

All Implemented Interfaces:
  Positionable, Substitutable

    public class Font

extends java.lang.Object
implements Substitutable, Positionable

This class holds font state information and provides access to the font metrics.

Field Summary
`static FontTriplet` `DEFAULT_FONT` Default fallback key
`static int` `PRIORITY_DEFAULT` Default selection priority
`static java.lang.String` `STYLE_INCLINED` Inclined font style
`static java.lang.String` `STYLE_ITALIC` Italic font style
`static java.lang.String` `STYLE_NORMAL` Normal font style
`static java.lang.String` `STYLE_OBLIQUE` Oblique font style
`static int` `WEIGHT_BOLD` Bold font weight
`static int` `WEIGHT_EXTRA_BOLD` Extra Bold font weight
`static int` `WEIGHT_LIGHT` Light font weight
`static int` `WEIGHT_NORMAL` Normal font weight

Constructor Summary
`Font(java.lang.String key, FontTriplet triplet, FontMetrics met, int fontSize)` Main constructor

Method Summary
`int` `getAscender()` Returns the font's ascender.
`int` `getCapHeight()` Returns the font's CapHeight.
`int` `getCharWidth(char c)` Helper method for getting the width of a unicode char from the current fontstate.
`int` `getCharWidth(int c)` Helper method for getting the width of a unicode char from the current fontstate.
`int` `getDescender()` Returns the font's Descender.
`FontMetrics` `getFontMetrics()` Returns the associated font metrics object.
`java.lang.String` `getFontName()` Returns the font's name.
`int` `getFontSize()` Returns the font size
`FontTriplet` `getFontTriplet()`
`java.util.Map<java.lang.Integer,java.util.Map<java.lang.Integer,java.lang.Integer>>` `getKerning()` Returns the font's kerning table
`int` `getKernValue(char ch1, char ch2)` Returns the amount of kerning between two characters.
`int` `getKernValue(int ch1, int ch2)` Returns the amount of kerning between two characters.
`int` `getWidth(int charnum)` Returns the width of a character
`int` `getWordWidth(java.lang.String word)` Calculates the word width.
`int` `getXHeight()` Returns the XHeight
`boolean` `hasChar(char c)` Determines whether this font contains a particular character/glyph.
`boolean` `hasKerning()`
`char` `mapChar(char c)` Map a java character (unicode) to a font character.
`int[][]` `performPositioning(java.lang.CharSequence cs, java.lang.String script, java.lang.String language)` Perform glyph positioning using an implied font size.
`int[][]` `performPositioning(java.lang.CharSequence cs, java.lang.String script, java.lang.String language, int fontSize)` Perform glyph positioning.
`boolean` `performsPositioning()` Determines if font performs glyph positioning.
`boolean` `performsSubstitution()` Determines if font performs glyph substitution.
`java.lang.CharSequence` `performSubstitution(java.lang.CharSequence cs, java.lang.String script, java.lang.String language)` Perform substitutions on characters to effect glyph substitution.
`java.lang.CharSequence` `reorderCombiningMarks(java.lang.CharSequence cs, int[][] gpa, java.lang.String script, java.lang.String language)` Reorder combining marks in character sequence so that they precede (within the sequence) the base character to which they are applied.
`java.lang.String` `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### WEIGHT_EXTRA_BOLD

    public static final int WEIGHT_EXTRA_BOLD

  Extra Bold font weight

  See Also:
    Constant Field Values

### WEIGHT_BOLD

    public static final int WEIGHT_BOLD

  Bold font weight

  See Also:
    Constant Field Values

### WEIGHT_NORMAL

    public static final int WEIGHT_NORMAL

  Normal font weight

  See Also:
    Constant Field Values

### WEIGHT_LIGHT

    public static final int WEIGHT_LIGHT

  Light font weight

  See Also:
    Constant Field Values

### STYLE_NORMAL

    public static final java.lang.String STYLE_NORMAL

  Normal font style

  See Also:
    Constant Field Values

### STYLE_ITALIC

    public static final java.lang.String STYLE_ITALIC

  Italic font style

  See Also:
    Constant Field Values

### STYLE_OBLIQUE

    public static final java.lang.String STYLE_OBLIQUE

  Oblique font style

  See Also:
    Constant Field Values

### STYLE_INCLINED

    public static final java.lang.String STYLE_INCLINED

  Inclined font style

  See Also:
    Constant Field Values

### PRIORITY_DEFAULT

    public static final int PRIORITY_DEFAULT

  Default selection priority

  See Also:
    Constant Field Values

### DEFAULT_FONT

    public static final FontTriplet DEFAULT_FONT

  Default fallback key

Constructor Detail

### Font

    public Font(java.lang.String key,
                FontTriplet triplet,
                FontMetrics met,
                int fontSize)

  Main constructor

  Parameters:
    `key` - key of the font
    `triplet` - the font triplet that was used to lookup this font (may be null)
    `met` - font metrics
    `fontSize` - font size

Method Detail

### getFontMetrics

    public FontMetrics getFontMetrics()

  Returns the associated font metrics object.

  Returns:
    the font metrics

### getAscender

    public int getAscender()

  Returns the font's ascender.

  Returns:
    the ascender

### getCapHeight

    public int getCapHeight()

  Returns the font's CapHeight.

  Returns:
    the capital height

### getDescender

    public int getDescender()

  Returns the font's Descender.

  Returns:
    the descender

### getFontName

    public java.lang.String getFontName()

  Returns the font's name.

  Returns:
    the font name

### getFontTriplet

    public FontTriplet getFontTriplet()

  Returns:
    the font triplet that selected this font

### getFontSize

    public int getFontSize()

  Returns the font size

  Returns:
    the font size

### getXHeight

    public int getXHeight()

  Returns the XHeight

  Returns:
    the XHeight

### hasKerning

    public boolean hasKerning()

  Returns:
    true if the font has kerning info

### getKerning

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

  Returns the font's kerning table

  Returns:
    the kerning table

### getKernValue

    public int getKernValue(char ch1,
                            char ch2)

  Returns the amount of kerning between two characters. The value returned measures in pt. So it is already adjusted for font size.

  Parameters:
    `ch1` - first character
    `ch2` - second character
  Returns:
    the distance to adjust for kerning, 0 if there's no kerning

### getKernValue

    public int getKernValue(int ch1,
                            int ch2)

  Returns the amount of kerning between two characters. The value returned measures in pt. So it is already adjusted for font size.

  Parameters:
    `ch1` - first character
    `ch2` - second character
  Returns:
    the distance to adjust for kerning, 0 if there's no kerning

### getWidth

    public int getWidth(int charnum)

  Returns the width of a character

  Parameters:
    `charnum` - character to look up
  Returns:
    width of the character

### mapChar

    public char mapChar(char c)

  Map a java character (unicode) to a font character. Default uses CodePointMapping.

  Parameters:
    `c` - character to map
  Returns:
    the mapped character

### hasChar

    public boolean hasChar(char c)

  Determines whether this font contains a particular character/glyph.

  Parameters:
    `c` - character to check
  Returns:
    True if the character is supported, Falso otherwise

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

### getCharWidth

    public int getCharWidth(char c)

  Helper method for getting the width of a unicode char from the current fontstate. This also performs some guessing on widths on various versions of space that might not exists in the font.

  Parameters:
    `c` - character to inspect
  Returns:
    the width of the character or -1 if no width available

### getCharWidth

    public int getCharWidth(int c)

  Helper method for getting the width of a unicode char from the current fontstate. This also performs some guessing on widths on various versions of space that might not exists in the font.

  Parameters:
    `c` - character to inspect
  Returns:
    the width of the character or -1 if no width available

### getWordWidth

    public int getWordWidth(java.lang.String word)

  Calculates the word width.

  Parameters:
    `word` - text to get width for
  Returns:
    the width of the text

### performsSubstitution

    public boolean performsSubstitution()

  Determines if font performs glyph substitution.

  Specified by:
    `performsSubstitution` in interface `Substitutable`
  Returns:
    true if performs substitution.

### performSubstitution

    public java.lang.CharSequence performSubstitution(java.lang.CharSequence cs,
                                                      java.lang.String script,
                                                      java.lang.String language)

  Perform substitutions on characters to effect glyph substitution. If some substitution is performed, it entails mapping from one or more input characters denoting textual character information to one or more output character codes denoting glyphs in this font, where the output character codes may make use of private character code values that have significance only for this font.

  Specified by:
    `performSubstitution` in interface `Substitutable`
  Parameters:
    `cs` - character sequence to map to output font encoding character sequence
    `script` - a script identifier
    `language` - a language identifier
  Returns:
    output sequence (represented as a character sequence, where each character in the returned sequence denotes "font characters", i.e., character codes that map directly (1-1) to their associated glyphs

### reorderCombiningMarks

    public java.lang.CharSequence reorderCombiningMarks(java.lang.CharSequence cs,
                                                        int[][] gpa,
                                                        java.lang.String script,
                                                        java.lang.String language)

  Reorder combining marks in character sequence so that they precede (within the sequence) the base character to which they are applied. N.B. In the case of LTR segments, marks are not reordered by this, method since when the segment is reversed by BIDI processing, marks are automatically reordered to precede their base character.

  Specified by:
    `reorderCombiningMarks` in interface `Substitutable`
  Parameters:
    `cs` - character sequence within which combining marks to be reordered
    `gpa` - associated glyph position adjustments (also reordered)
    `script` - a script identifier
    `language` - a language identifier
  Returns:
    output sequence containing reordered "font characters"

### performsPositioning

    public boolean performsPositioning()

  Determines if font performs glyph positioning.

  Specified by:
    `performsPositioning` in interface `Positionable`
  Returns:
    true if performs positioning

### performPositioning

    public int[][] performPositioning(java.lang.CharSequence cs,
                                      java.lang.String script,
                                      java.lang.String language,
                                      int fontSize)

  Perform glyph positioning.

  Specified by:
    `performPositioning` in interface `Positionable`
  Parameters:
    `cs` - character sequence to map to position offsets (advancement adjustments)
    `script` - a script identifier
    `language` - a language identifier
    `fontSize` - font size
  Returns:
    array (sequence) of 4-tuples of placement [PX,PY] and advance [AX,AY] adjustments, in that order, with one 4-tuple for each element of glyph sequence, or null if no non-zero adjustment applies

### performPositioning

    public int[][] performPositioning(java.lang.CharSequence cs,
                                      java.lang.String script,
                                      java.lang.String language)

  Perform glyph positioning using an implied font size.

  Specified by:
    `performPositioning` in interface `Positionable`
  Parameters:
    `cs` - character sequence to map to position offsets (advancement adjustments)
    `script` - a script identifier
    `language` - a language identifier
  Returns:
    array (sequence) of 4-tuples of placement [PX,PY] and advance [AX,AY] adjustments, in that order, with one 4-tuple for each element of glyph sequence, or null if no non-zero adjustment applies

fop 1.1

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