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
  • Constructor Details

    • SystemFontMetricsMapper

      public SystemFontMetricsMapper(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 font
      java2DFontMetrics - metric calculations delegated to this
  • Method Details

    • getFontURI

      public final 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
    • getFontName

      public String getFontName()
      Returns the "PostScript" font name (Example: "Helvetica-BoldOblique").
      Specified by:
      getFontName in interface FontMetrics
      Returns:
      the font name
    • getEmbedFontName

      public 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
    • getFullName

      public String getFullName()
      Returns the font's full name (Example: "Helvetica Bold Oblique").
      Specified by:
      getFullName in interface FontMetrics
      Returns:
      the font's full name
    • getFamilyNames

      public Set 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)
    • getFontType

      public FontType getFontType()
      Returns the type of the font.
      Specified by:
      getFontType in interface FontMetrics
      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 interface FontMetrics
      Overrides:
      getMaxAscent in class Typeface
      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 interface FontMetrics
      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 interface FontMetrics
      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 interface FontMetrics
      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 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
    • 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 interface FontMetrics
      Parameters:
      i - code point index
      size - 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 interface FontMetrics
      Returns:
      an array of widths
    • getBoundingBox

      public 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
    • getFont

      public 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.
    • getKerningInfo

      public Map getKerningInfo()
      Returns the kerning map for the font.
      Specified by:
      getKerningInfo in interface FontMetrics
      Returns:
      the kerning map
    • hasKerningInfo

      public boolean hasKerningInfo()
      Indicates if the font has kerning information.
      Specified by:
      hasKerningInfo in interface FontMetrics
      Returns:
      true if kerning is available.
    • getEncodingName

      public String getEncodingName()
      Get the encoding of the font.
      Specified by:
      getEncodingName in class Typeface
      Returns:
      the encoding
    • mapChar

      public 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
    • hasChar

      public 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