org.pentaho.reporting.libraries.fonts.truetype
Class TrueTypeFontRecord

java.lang.Object
  extended by org.pentaho.reporting.libraries.fonts.truetype.TrueTypeFontRecord
All Implemented Interfaces:
Serializable, FontRecord, FontSource

public class TrueTypeFontRecord
extends Object
implements FontSource

A true-type font record. The record contains meta-information about the font, which allows the system to lookup the font by one of its names and other style attributes.

A font without a 'name' table is rejected. The Name-Table is a mandatory table in the OpenType standard, and only weird MacOS fonts omit that table.

Missing 'head' or 'OS/2' tables are ignored and default values are assumed instead.

Author:
Thomas Morgner
See Also:
Serialized Form

Constructor Summary
TrueTypeFontRecord(TrueTypeFont trueTypeFont, FontFamily family)
           
 
Method Summary
 boolean equals(Object o)
           
 int getCollectionIndex()
           
 FontFamily getFamily()
          Returns the family for this record.
 String getFontSource()
          Returns the file name used to load the font.
 FontIdentifier getIdentifier()
          This identifies the font resource assigned to this record.
 long getOffset()
           
 int hashCode()
           
 boolean isBold()
          Returns true, if this font corresponds to a bold version of the font.
 boolean isEmbeddable()
           
 boolean isItalic()
          Returns true, if this font includes italic glyphs.
 boolean isNonWindows()
           
 boolean isOblique()
          Returns tue, if this font's italic mode is in fact some sort of being oblique.
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TrueTypeFontRecord

public TrueTypeFontRecord(TrueTypeFont trueTypeFont,
                          FontFamily family)
                   throws IOException,
                          FontException
Throws:
IOException
FontException
Method Detail

getOffset

public long getOffset()

getFamily

public FontFamily getFamily()
Description copied from interface: FontRecord
Returns the family for this record.

Specified by:
getFamily in interface FontRecord
Returns:
the font family.

isEmbeddable

public boolean isEmbeddable()
Specified by:
isEmbeddable in interface FontSource

isBold

public boolean isBold()
Description copied from interface: FontRecord
Returns true, if this font corresponds to a bold version of the font. A font-renderer that renders a font that does not provide a bold face must emulate the boldness using other means.

The font should *not* lie here and say 'true', if it does not contain bold glyphs, as this will make it impossible to differentiate between native bold fonts and fonts for which the renderer will have to provide boldness.

Specified by:
isBold in interface FontRecord
Returns:
true, if the font provides bold glyphs, false otherwise.

isItalic

public boolean isItalic()
Description copied from interface: FontRecord
Returns true, if this font includes italic glyphs. Italics is different from oblique, as certain glyphs (most notably the lowercase 'f') will have a different appearance, making the font look more like a script font. A font-renderer that renders a font that does not provide an italic face must emulate the italics using other means.

The font should *not* lie here and say 'true', if it does not contain italic glyphs, as this will make it impossible to differentiate between native italics fonts and fonts for which the renderer will have to provide the italics style.

Specified by:
isItalic in interface FontRecord
Returns:
true, if the font is italic.

isOblique

public boolean isOblique()
Description copied from interface: FontRecord
Returns tue, if this font's italic mode is in fact some sort of being oblique. An oblique font's glyphs are sheared, but they are not made to look more script like. A font-renderer that renders a font that does not provide a oblique face must emulate the oblique-mode using other means.

The font should *not* lie here and say 'true', if it does not contain oblique glyphs, as this will make it impossible to differentiate between native oblique fonts and fonts for which the renderer will have to provide the oblique style.

Specified by:
isOblique in interface FontRecord
Returns:
true, if the font is oblique. All italic fonts are also oblique.

getFontSource

public String getFontSource()
Description copied from interface: FontSource
Returns the file name used to load the font. This method exists only for iText.

Specified by:
getFontSource in interface FontSource
Returns:
this is needed for iText.

getCollectionIndex

public int getCollectionIndex()

equals

public boolean equals(Object o)
Overrides:
equals in class Object

getIdentifier

public FontIdentifier getIdentifier()
This identifies the font resource assigned to this record.

Specified by:
getIdentifier in interface FontRecord
Returns:

isNonWindows

public boolean isNonWindows()

hashCode

public int hashCode()
Overrides:
hashCode in class Object