Package org.apache.fop.render.java2d
Class SystemFontMetricsMapper
- java.lang.Object
-
- org.apache.fop.fonts.Typeface
-
- org.apache.fop.render.java2d.SystemFontMetricsMapper
-
- All Implemented Interfaces:
FontMetrics
,FontMetricsMapper
public class SystemFontMetricsMapper extends Typeface implements FontMetricsMapper
This class implements org.apache.fop.layout.FontMetrics and is added to the hash table in FontInfo. It deferes the actual calculation of the metrics to Java2DFontMetrics. It only keeps the java name and style as member varibles
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
family
The java name of the font.private java.net.URI
fontFileURI
private Java2DFontMetrics
java2DFontMetrics
This is a Java2DFontMetrics that does the real calculation.private int
style
The java style of the font.-
Fields inherited from class org.apache.fop.fonts.Typeface
eventListener, NOT_FOUND
-
-
Constructor Summary
Constructors Constructor Description SystemFontMetricsMapper(java.lang.String family, int style, Java2DFontMetrics java2DFontMetrics)
Constructs a new Font-metrics.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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
getFamilyNames()
Returns the font's family names as a Set of Strings (Example: "Helvetica").java.awt.Font
getFont(int size)
Gets aFont
instance of the font that thisFontMetrics
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
getMaxAscent(int size)
Returns the maximum ascent of the font described by this FontMetrics object.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 objectboolean
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.-
Methods inherited from class org.apache.fop.fonts.Typeface
hadMappingOperations, hasFeature, isCID, 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
hasFeature, isMultiByte
-
-
-
-
Field Detail
-
java2DFontMetrics
private final Java2DFontMetrics java2DFontMetrics
This is a Java2DFontMetrics that does the real calculation. It is only one class that dynamically determines the font-size.
-
fontFileURI
private final java.net.URI fontFileURI
-
family
private final java.lang.String family
The java name of the font. # Make the family name immutable.
-
style
private final int style
The java style of the font. # Make the style immutable.
-
-
Constructor Detail
-
SystemFontMetricsMapper
public SystemFontMetricsMapper(java.lang.String family, int style, Java2DFontMetrics java2DFontMetrics)
Constructs a new Font-metrics.- Parameters:
family
- the family name of the font (java value)style
- the java type style value of the fontjava2DFontMetrics
- metric calculations delegated to this
-
-
Method Detail
-
getFontURI
public final java.net.URI getFontURI()
Returns the URI of the font file from which these metrics were loaded.- Specified by:
getFontURI
in interfaceFontMetrics
- Returns:
- the font file's URI
-
getFontName
public java.lang.String getFontName()
Returns the "PostScript" font name (Example: "Helvetica-BoldOblique").- Specified by:
getFontName
in interfaceFontMetrics
- Returns:
- the font name
-
getEmbedFontName
public java.lang.String getEmbedFontName()
Returns the font name for font embedding (may include a prefix, Example: "1E28bcArialMT").- Specified by:
getEmbedFontName
in interfaceFontMetrics
- Returns:
- the name for font embedding
-
getFullName
public java.lang.String getFullName()
Returns the font's full name (Example: "Helvetica Bold Oblique").- Specified by:
getFullName
in interfaceFontMetrics
- Returns:
- the font's full name
-
getFamilyNames
public java.util.Set getFamilyNames()
Returns the font's family names as a Set of Strings (Example: "Helvetica").- Specified by:
getFamilyNames
in interfaceFontMetrics
- Returns:
- the font's family names (a Set of Strings)
-
getFontType
public FontType getFontType()
Returns the type of the font.- Specified by:
getFontType
in interfaceFontMetrics
- Returns:
- the font type
-
getMaxAscent
public int getMaxAscent(int size)
Returns the maximum ascent of the font described by this FontMetrics object. Note: This is not the same as getAscender().- Specified by:
getMaxAscent
in interfaceFontMetrics
- Overrides:
getMaxAscent
in classTypeface
- Parameters:
size
- font size- Returns:
- ascent in milliponts
-
getAscender
public 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 interfaceFontMetrics
- Parameters:
size
- font size- Returns:
- ascent in milliponts
-
getCapHeight
public int getCapHeight(int size)
Returns the size of a capital letter measured from the font's baseline.- Specified by:
getCapHeight
in interfaceFontMetrics
- Parameters:
size
- font size- Returns:
- height of capital characters
-
getDescender
public int getDescender(int size)
Returns the descent of the font described by this FontMetrics object.- Specified by:
getDescender
in interfaceFontMetrics
- Parameters:
size
- font size- Returns:
- descent in milliponts
-
getXHeight
public int getXHeight(int size)
Determines the typical font height of this FontMetrics object- Specified by:
getXHeight
in interfaceFontMetrics
- 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 interfaceFontMetrics
- 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 interfaceFontMetrics
- 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 interfaceFontMetrics
- 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 interfaceFontMetrics
- Parameters:
size
- font size- Returns:
- the thickness in 1/1000ths of the font size
-
getWidth
public 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 interfaceFontMetrics
- Parameters:
i
- code point indexsize
- font size- Returns:
- the width of the character
-
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 interfaceFontMetrics
- 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 interfaceFontMetrics
- Parameters:
glyphIndex
- glyph indexsize
- font size- Returns:
- the scaled bounding box scaled in 1/1000ths of the given size
-
getFont
public java.awt.Font getFont(int size)
Gets aFont
instance of the font that thisFontMetrics
describes in the desired size.- Specified by:
getFont
in interfaceFontMetricsMapper
- Parameters:
size
- font size- Returns:
- font with the desired characteristics.
-
getKerningInfo
public java.util.Map getKerningInfo()
Returns the kerning map for the font.- Specified by:
getKerningInfo
in interfaceFontMetrics
- Returns:
- the kerning map
-
hasKerningInfo
public boolean hasKerningInfo()
Indicates if the font has kerning information.- Specified by:
hasKerningInfo
in interfaceFontMetrics
- Returns:
- true if kerning is available.
-
getEncodingName
public java.lang.String getEncodingName()
Get the encoding of the font.- Specified by:
getEncodingName
in classTypeface
- Returns:
- the encoding
-
mapChar
public char mapChar(char c)
Map a Unicode character to a code point in the font.
-
-