org.apache.fop.render.java2d

Class Java2DFontMetrics


public class Java2DFontMetrics
extends java.lang.Object

This is a FontMetrics to be used for AWT rendering. It instanciates a font, depening on family and style values. The java.awt.FontMetrics for this font is then created to be used for the actual measurement. Since layout is word by word and since it is expected that two subsequent words often share the same style, the Font and FontMetrics is buffered and only changed if needed.

Since FontState and FontInfo multiply all factors by size, we assume a "standard" font of FONT_SIZE.

Field Summary

static int
FONT_FACTOR
This factor multiplies the calculated values to scale to FOP internal measurements
static int
FONT_SIZE
Font size standard used for metric measurements

Constructor Summary

Java2DFontMetrics(Graphics2D graphics)
Constructs a new Font-metrics.

Method Summary

int
getAscender(String family, int style, int size)
Determines the font ascent of the Font described by this FontMetrics object
int
getCapHeight(String family, int style, int size)
The size of a capital letter measured from the font's baseline
int
getDescender(String family, int style, int size)
Determines the font descent of the Font described by this FontMetrics object
Font
getFont(String family, int style, int size)
Returns a java.awt.Font instance for the desired family, style and size type.
int
getMaxAscent(String family, int style, int size)
Determines the font's maximum ascent of the Font described by the current FontMetrics object
int[]
getWidths(String family, int style, int size)
Return widths (in 1/1000ths of point size) of all characters
int
getXHeight(String family, int style, int size)
Determines the typical font height of a small cap letter FontMetrics object
boolean
hasChar(String family, int style, int size, char c)
Indicates whether the font contains a particular character/glyph.
int
width(int i, String family, int style, int size)
Returns width (in 1/1000ths of point size) of character at code point i

Field Details

FONT_FACTOR

public static final int FONT_FACTOR
This factor multiplies the calculated values to scale to FOP internal measurements
Field Value:
1000000

FONT_SIZE

public static final int FONT_SIZE
Font size standard used for metric measurements
Field Value:
1

Constructor Details

Java2DFontMetrics

public Java2DFontMetrics(Graphics2D graphics)
Constructs a new Font-metrics.
Parameters:
graphics - a temp graphics object - this is needed so that we can get an instance of java.awt.FontMetrics

Method Details

getAscender

public int getAscender(String family,
                       int style,
                       int size)
Determines the font ascent of the Font described by this FontMetrics object
Parameters:
family - font family (java name) to use
style - font style (java def.) to use
size - font size
Returns:
ascent in milliponts

getCapHeight

public int getCapHeight(String family,
                        int style,
                        int size)
The size of a capital letter measured from the font's baseline
Parameters:
family - font family
style - font style
size - font size
Returns:
capital height in millipoints

getDescender

public int getDescender(String family,
                        int style,
                        int size)
Determines the font descent of the Font described by this FontMetrics object
Parameters:
family - font family (jave name) to use
style - font style (jave def.) to use
size - font size
Returns:
descent in milliponts

getFont

public Font getFont(String family,
                    int style,
                    int size)
Returns a java.awt.Font instance for the desired family, style and size type. This is here, so that the font-mapping of FOP-defined fonts to java-fonts can be done in one place and does not need to occur in AWTFontRenderer.
Parameters:
family - font family (jave name) to use
style - font style (jave def.) to use
size - font size
Returns:
font with the desired characeristics.

getMaxAscent

public int getMaxAscent(String family,
                        int style,
                        int size)
Determines the font's maximum ascent of the Font described by the current FontMetrics object
Parameters:
family - font family (java name) to use
style - font style (java def.) to use
size - font size
Returns:
ascent in milliponts

getWidths

public int[] getWidths(String family,
                       int style,
                       int size)
Return widths (in 1/1000ths of point size) of all characters
Parameters:
family - font family (jave name) to use
style - font style (jave def.) to use
size - font size
Returns:
array of character widths in millipoints

getXHeight

public int getXHeight(String family,
                      int style,
                      int size)
Determines the typical font height of a small cap letter FontMetrics object
Parameters:
family - font family (jave name) to use
style - font style (jave def.) to use
size - font size
Returns:
font height in milliponts

hasChar

public boolean hasChar(String family,
                       int style,
                       int size,
                       char c)
Indicates whether the font contains a particular character/glyph.
Parameters:
family - font family (jave name) to use
style - font style (jave def.) to use
size - font size
c - the glyph to check
Returns:
true if the character is supported

width

public int width(int i,
                 String family,
                 int style,
                 int size)
Returns width (in 1/1000ths of point size) of character at code point i
Parameters:
i - the character for which to get the width
family - font family (jave name) to use
style - font style (jave def.) to use
size - font size
Returns:
character width in millipoints

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