Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| fop 2.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.fop.render.java2d
Class CustomFontMetricsMapper

    java.lang.Object
      org.apache.fop.fonts.Typeface
          org.apache.fop.render.java2d.CustomFontMetricsMapper

All Implemented Interfaces:
  Positionable, Substitutable, FontMetrics, FontMetricsMapper

    public class CustomFontMetricsMapper

extends Typeface
implements FontMetricsMapper, Substitutable, Positionable

FontMetricsMapper that delegates most methods to an underlying `FontMetrics` instance. This class was designed to allow the underlying `Font` to be loaded from a user-configured file not registered in the current graphics environment.

Field Summary

Fields inherited from class org.apache.fop.fonts.Typeface
`eventListener, NOT_FOUND`

Constructor Summary
`CustomFontMetricsMapper(CustomFont fontMetrics)` Construction of this class results in the immediate construction of the underlying `Font`.
`CustomFontMetricsMapper(LazyFont fontMetrics, java.io.InputStream fontSource)` Construction of this class results in the immediate construction of the underlying `Font`.

Method Summary
`int` | `getAscender(int size)` Returns the ascent of the font described by this FontMetrics object.
`java.awt.Rectangle` | `getBoundingBox(int glyphIndex, int size)` Returns the bounding box of the glyph at the given index, for the given font size.
`int` | `getCapHeight(int size)` Returns the size of a capital letter measured from the font's baseline.
`int` | `getDescender(int size)` Returns the descent of the font described by this FontMetrics object.
`java.lang.String` | `getEmbedFontName()` Returns the font name for font embedding (may include a prefix, Example: "1E28bcArialMT").
`java.lang.String` | `getEncodingName()` Get the encoding of the font.
`java.util.Set<java.lang.String>` | `getFamilyNames()` Returns the font's family names as a Set of Strings (Example: "Helvetica").
`java.awt.Font` | `getFont(int size)` Gets a `Font` instance of the font that this `FontMetrics` describes in the desired size.
`java.lang.String` | `getFontName()` Returns the "PostScript" font name (Example: "Helvetica-BoldOblique").
`FontType` | `getFontType()` Returns the type of the font.
`java.net.URI` | `getFontURI()` Returns the URI of the font file from which these metrics were loaded.
`java.lang.String` | `getFullName()` Returns the font's full name (Example: "Helvetica Bold Oblique").
`java.util.Map` | `getKerningInfo()` Returns the kerning map for the font.
`int` | `getStrikeoutPosition(int size)` Returns the distance from the baseline to the center of the strikeout line (negative value indicates below baseline).
`int` | `getStrikeoutThickness(int size)` Returns the thickness of the strikeout line.
`int` | `getUnderlinePosition(int size)` Returns the distance from the baseline to the center of the underline (negative value indicates below baseline).
`int` | `getUnderlineThickness(int size)` Returns the thickness of the underline.
`int` | `getWidth(int i, int size)` Return the width (in 1/1000ths of point size) of the character at code point i.
`int[]` | `getWidths()` Return the array of widths.
`int` | `getXHeight(int size)` Determines the typical font height of this FontMetrics object
`boolean` | `hasChar(char c)` Determines whether this font contains a particular character/glyph.
`boolean` | `hasKerningInfo()` Indicates if the font has kerning information.
`char` | `mapChar(char c)` Map a Unicode character to a code point in the font.
`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, java.util.List associations, boolean retainControls)` 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, java.util.List associations)` Reorder combining marks in character sequence so that they precede (within the sequence) the base character to which they are applied.

Methods inherited from class org.apache.fop.fonts.Typeface
`getMaxAscent, hadMappingOperations, hasFeature, isMultiByte, notifyMapOperation, setEventListener, toString, warnMissingGlyph`

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

Methods inherited from interface org.apache.fop.fonts.FontMetrics
`getMaxAscent, hasFeature, isMultiByte`

Constructor Detail

### CustomFontMetricsMapper

    public CustomFontMetricsMapper(CustomFont fontMetrics)
                            throws java.awt.FontFormatException,
                                   java.io.IOException

  Construction of this class results in the immediate construction of the underlying `Font`.

  Parameters:
    `fontMetrics` - the metrics of the custom font
  Throws:
    `java.awt.FontFormatException` - if a bad font is loaded
    `java.io.IOException` - if an I/O error occurs

### CustomFontMetricsMapper

    public CustomFontMetricsMapper(LazyFont fontMetrics,
                                   java.io.InputStream fontSource)
                            throws java.awt.FontFormatException,
                                   java.io.IOException

  Construction of this class results in the immediate construction of the underlying `Font`.

  Parameters:
    `fontMetrics` - the font
    `fontSource` - the font source to access the font
  Throws:
    `java.awt.FontFormatException` - if a bad font is loaded
    `java.io.IOException` - if an I/O error occurs

Method Detail

### getEncodingName

    public final java.lang.String getEncodingName()

  Get the encoding of the font.

  Specified by:
    `getEncodingName` in class `Typeface`
  Returns:
    the encoding

### hasChar

    public final boolean hasChar(char c)

  Determines whether this font contains a particular character/glyph.

  Specified by:
    `hasChar` in class `Typeface`
  Parameters:
    `c` - character to check
  Returns:
    True if the character is supported, Falso otherwise

### mapChar

    public final char mapChar(char c)

  Map a Unicode character to a code point in the font.

  Specified by:
    `mapChar` in class `Typeface`
  Parameters:
    `c` - character to map
  Returns:
    the mapped character

### getFont

    public final java.awt.Font getFont(int size)

  Gets a `Font` instance of the font that this `FontMetrics` describes in the desired size.

  Specified by:
    `getFont` in interface `FontMetricsMapper`
  Parameters:
    `size` - font size
  Returns:
    font with the desired characteristics.

### getAscender

    public final int getAscender(int size)

  Returns the ascent of the font described by this FontMetrics object. It returns the nominal ascent within the em box.

  Specified by:
    `getAscender` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    ascent in milliponts

### getCapHeight

    public final int getCapHeight(int size)

  Returns the size of a capital letter measured from the font's baseline.

  Specified by:
    `getCapHeight` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    height of capital characters

### getDescender

    public final int getDescender(int size)

  Returns the descent of the font described by this FontMetrics object.

  Specified by:
    `getDescender` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    descent in milliponts

### getEmbedFontName

    public final java.lang.String getEmbedFontName()

  Returns the font name for font embedding (may include a prefix, Example: "1E28bcArialMT").

  Specified by:
    `getEmbedFontName` in interface `FontMetrics`
  Returns:
    the name for font embedding

### getFamilyNames

    public final java.util.Set<java.lang.String> getFamilyNames()

  Returns the font's family names as a Set of Strings (Example: "Helvetica").

  Specified by:
    `getFamilyNames` in interface `FontMetrics`
  Returns:
    the font's family names (a Set of Strings)

### getFontName

    public final java.lang.String getFontName()

  Returns the "PostScript" font name (Example: "Helvetica-BoldOblique").

  Specified by:
    `getFontName` in interface `FontMetrics`
  Returns:
    the font name

### getFontURI

    public final java.net.URI getFontURI()

  Returns the URI of the font file from which these metrics were loaded.

  Specified by:
    `getFontURI` in interface `FontMetrics`
  Returns:
    the font file's URI

### getFontType

    public final FontType getFontType()

  Returns the type of the font.

  Specified by:
    `getFontType` in interface `FontMetrics`
  Returns:
    the font type

### getFullName

    public final java.lang.String getFullName()

  Returns the font's full name (Example: "Helvetica Bold Oblique").

  Specified by:
    `getFullName` in interface `FontMetrics`
  Returns:
    the font's full name

### getKerningInfo

    public final java.util.Map getKerningInfo()

  Returns the kerning map for the font.

  Specified by:
    `getKerningInfo` in interface `FontMetrics`
  Returns:
    the kerning map

### getWidth

    public final int getWidth(int i,
                              int size)

  Return the width (in 1/1000ths of point size) of the character at code point i.

  Specified by:
    `getWidth` in interface `FontMetrics`
  Parameters:
    `i` - code point index
    `size` - font size
  Returns:
    the width of the character

### getWidths

    public final 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 `FontMetrics`
  Returns:
    an array of widths

### getBoundingBox

    public java.awt.Rectangle getBoundingBox(int glyphIndex,
                                             int size)

  Description copied from interface: `FontMetrics`
  Returns the bounding box of the glyph at the given index, for the given font size.

  Specified by:
    `getBoundingBox` in interface `FontMetrics`
  Parameters:
    `glyphIndex` - glyph index
    `size` - font size
  Returns:
    the scaled bounding box scaled in 1/1000ths of the given size

### getXHeight

    public final int getXHeight(int size)

  Determines the typical font height of this FontMetrics object

  Specified by:
    `getXHeight` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    font height in millipoints

### getUnderlinePosition

    public int getUnderlinePosition(int size)

  Description copied from interface: `FontMetrics`
  Returns the distance from the baseline to the center of the underline (negative value indicates below baseline).

  Specified by:
    `getUnderlinePosition` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    the position in 1/1000ths of the font size

### getUnderlineThickness

    public int getUnderlineThickness(int size)

  Description copied from interface: `FontMetrics`
  Returns the thickness of the underline.

  Specified by:
    `getUnderlineThickness` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    the thickness in 1/1000ths of the font size

### getStrikeoutPosition

    public int getStrikeoutPosition(int size)

  Description copied from interface: `FontMetrics`
  Returns the distance from the baseline to the center of the strikeout line (negative value indicates below baseline).

  Specified by:
    `getStrikeoutPosition` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    the position in 1/1000ths of the font size

### getStrikeoutThickness

    public int getStrikeoutThickness(int size)

  Description copied from interface: `FontMetrics`
  Returns the thickness of the strikeout line.

  Specified by:
    `getStrikeoutThickness` in interface `FontMetrics`
  Parameters:
    `size` - font size
  Returns:
    the thickness in 1/1000ths of the font size

### hasKerningInfo

    public final boolean hasKerningInfo()

  Indicates if the font has kerning information.

  Specified by:
    `hasKerningInfo` in interface `FontMetrics`
  Returns:
    true if kerning is available.

### 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

### 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,
                                                      java.util.List associations,
                                                      boolean retainControls)

  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
    `associations` - optional list to receive list of character associations
    `retainControls` - if true, then retain control characters and their glyph mappings, otherwise remove
  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,
                                                        java.util.List associations)

  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
    `associations` - optional list of associations to be reordered
  Returns:
    output sequence containing reordered "font characters"

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| fop 2.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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