fop 2.2

org.apache.fop.fonts
Class Font

java.lang.Object
  extended by 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 hasFeature(int tableType, java.lang.String script, java.lang.String language, java.lang.String feature)
           
 boolean hasKerning()
           
 boolean isMultiByte()
          Determines whether the font is a multibyte font.
 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, 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.
 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

isMultiByte

public boolean isMultiByte()
Determines whether the font is a multibyte font.

Returns:
True if it is multibyte

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

hasFeature

public boolean hasFeature(int tableType,
                          java.lang.String script,
                          java.lang.String language,
                          java.lang.String feature)
Returns:
true if the font has feature (i.e., at least one lookup matches)

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,
                                                  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"

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 2.2

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