com.lowagie.text.rtf.style
Class RtfFont

java.lang.Object
  extended by com.lowagie.text.Font
      extended by com.lowagie.text.rtf.style.RtfFont
All Implemented Interfaces:
RtfBasicElement, RtfExtendedElement, RtfElementInterface, Comparable
Direct Known Subclasses:
RtfParagraphStyle

public class RtfFont
extends Font
implements RtfExtendedElement

The RtfFont class stores one font for an rtf document. It extends Font, so can be set as a font, to allow adding of fonts with arbitrary names. BaseFont fontname handling contributed by Craig Fleming. Various fixes Renaud Michel, Werner Daehn. Version: $Id: RtfFont.java 4008 2009-07-07 09:56:52Z blowagie $

Author:
Mark Hall (Mark.Hall@mail.room3b.eu), Craig Fleming (rythos@rhana.dhs.org), Renaud Michel (r.michel@immedia.be), Werner Daehn (Werner.Daehn@BusinessObjects.com), Lidong Liu (tmslld@gmail.com), Thomas Bickel (tmb99@inode.at)

Field Summary
private  int charset
          The character set to use for this font
private  RtfColor color
          The color of this font
static String DEFAULT_FONT
          Default font
protected  RtfDocument document
          The RtfDocument this RtfFont belongs to.
private static byte[] FONT_BOLD
          Constant for the bold flag
private static byte[] FONT_CHARSET
          Constant for the charset
private static byte[] FONT_DOUBLE_STRIKETHROUGH
          Constant for the double strikethrough flag
private static byte[] FONT_EMBOSSED
          Constant for the embossed flag
private static byte[] FONT_ENGRAVED
          Constant for the engraved flag
private static byte[] FONT_FAMILY
          Constant for the font family to use ("froman")
private static byte[] FONT_HIDDEN
          Constant for hidden text flag
private static byte[] FONT_ITALIC
          Constant for the italic flag
private static byte[] FONT_OUTLINE
          Constant for the outline flag
private static byte[] FONT_SHADOW
          Constant for the shadow flag
static byte[] FONT_SIZE
          Constant for the font size
private static byte[] FONT_STRIKETHROUGH
          Constant for the strikethrough flag
private static byte[] FONT_UNDERLINE
          Constant for the underline flag
private  String fontName
          The font name.
private  int fontNumber
          The number of this font
private  int fontSize
          The font size.
private  int fontStyle
          The font style.
static int STYLE_BOLD
          Constant for a bold font
static int STYLE_DOUBLE_STRIKETHROUGH
          Constant for a double strikethrough font
static int STYLE_EMBOSSED
          Constant for an embossed font
static int STYLE_ENGRAVED
          Constant for an engraved font
static int STYLE_HIDDEN
          Constant for a font that hides the actual text.
static int STYLE_ITALIC
          Constant for an italic font
static int STYLE_NONE
          Constant for a plain font
static int STYLE_OUTLINE
          Constant for an outlined font
static int STYLE_SHADOW
          Constant for a shadowed font
static int STYLE_STRIKETHROUGH
          Constant for a strikethrough font
static int STYLE_UNDERLINE
          Constant for an underlined font
 
Fields inherited from class com.lowagie.text.Font
BOLD, BOLDITALIC, COURIER, DEFAULTSIZE, HELVETICA, ITALIC, NORMAL, STRIKETHRU, SYMBOL, TIMES_ROMAN, UNDEFINED, UNDERLINE, ZAPFDINGBATS
 
Fields inherited from interface com.lowagie.text.rtf.RtfBasicElement
CLOSE_GROUP, COMMA_DELIMITER, DELIMITER, OPEN_GROUP, TWIPS_FACTOR
 
Constructor Summary
  RtfFont(RtfDocument doc, Font font)
          Constructs a RtfFont from a com.lowagie.text.Font
protected RtfFont(RtfDocument doc, int fontNumber)
          Special constructor for the default font
  RtfFont(String fontName)
          Constructs a RtfFont with the given font name and all other properties at their default values.
  RtfFont(String fontName, float size)
          Constructs a RtfFont with the given font name and font size and all other properties at their default values.
  RtfFont(String fontName, float size, int style)
          Constructs a RtfFont with the given font name, font size and font style and the default color.
  RtfFont(String fontName, float size, int style, Color color)
          Constructs a RtfFont with the given font name, font size, font style and color.
  RtfFont(String fontName, float size, int style, Color color, int charset)
          Constructs a RtfFont with the given font name, font size, font style, color and charset.
 
Method Summary
 int compareTo(Object object)
          Compares this RtfFont to either a Font or an RtfFont.
 Font difference(Font font)
          Replaces the attributes that are equal to null with the attributes of a given font.
 boolean equals(Object obj)
          Tests for equality of RtfFonts.
 int getCharset()
          Gets the charset used for constructing this RtfFont.
 String getFamilyname()
          Gets the familyname as a String.
 String getFontName()
          Gets the font name of this RtfFont
 int getFontNumber()
          Gets the font number of this RtfFont
 int getFontSize()
          Gets the font size of this RtfFont
 int getFontStyle()
          Gets the font style of this RtfFont
 int hashCode()
          Returns the hash code of this RtfFont.
protected  byte[] intToByteArray(int i)
          Transforms an integer into its String representation and then returns the bytes of that string.
 boolean isStandardFont()
          The RtfFont is never a standard font.
 void setCharset(int charset)
          Sets the charset used for constructing this RtfFont.
 void setColor(Color color)
          Sets the color.
 void setColor(int red, int green, int blue)
          Sets the color.
 void setFamily(String family)
          Sets the family using a String ("Courier", "Helvetica", "Times New Roman", "Symbol" or "ZapfDingbats").
protected  void setFontName(String fontName)
          Sets the font name of this RtfFont.
 void setInHeader(boolean inHeader)
          Unused
 void setInTable(boolean inTable)
          Unused
 void setRtfDocument(RtfDocument doc)
          Sets the RtfDocument this RtfFont belongs to
 void setSize(float size)
          Sets the size.
 void setStyle(int style)
          Sets the style.
 void setStyle(String style)
          Sets the style using a String containing one of more of the following values: normal, bold, italic, underline, strike.
private  void setToDefaultFamily(String familyname)
          Sets the correct font name from the family name.
 void writeBegin(OutputStream result)
          Writes the font beginning
 void writeContent(OutputStream out)
          unused
 void writeDefinition(OutputStream result)
          Writes the font definition
 void writeEnd(OutputStream result)
          Write the font end
 
Methods inherited from class com.lowagie.text.Font
getBaseFont, getCalculatedBaseFont, getCalculatedLeading, getCalculatedSize, getCalculatedStyle, getColor, getFamily, getFamilyIndex, getSize, getStyle, getStyleValue, isBold, isItalic, isStrikethru, isUnderlined
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FONT_FAMILY

private static final byte[] FONT_FAMILY
Constant for the font family to use ("froman")


FONT_CHARSET

private static final byte[] FONT_CHARSET
Constant for the charset


FONT_SIZE

public static final byte[] FONT_SIZE
Constant for the font size


FONT_BOLD

private static final byte[] FONT_BOLD
Constant for the bold flag


FONT_ITALIC

private static final byte[] FONT_ITALIC
Constant for the italic flag


FONT_UNDERLINE

private static final byte[] FONT_UNDERLINE
Constant for the underline flag


FONT_STRIKETHROUGH

private static final byte[] FONT_STRIKETHROUGH
Constant for the strikethrough flag


FONT_DOUBLE_STRIKETHROUGH

private static final byte[] FONT_DOUBLE_STRIKETHROUGH
Constant for the double strikethrough flag


FONT_SHADOW

private static final byte[] FONT_SHADOW
Constant for the shadow flag


FONT_OUTLINE

private static final byte[] FONT_OUTLINE
Constant for the outline flag


FONT_EMBOSSED

private static final byte[] FONT_EMBOSSED
Constant for the embossed flag


FONT_ENGRAVED

private static final byte[] FONT_ENGRAVED
Constant for the engraved flag


FONT_HIDDEN

private static final byte[] FONT_HIDDEN
Constant for hidden text flag


STYLE_NONE

public static final int STYLE_NONE
Constant for a plain font

See Also:
Constant Field Values

STYLE_BOLD

public static final int STYLE_BOLD
Constant for a bold font

See Also:
Constant Field Values

STYLE_ITALIC

public static final int STYLE_ITALIC
Constant for an italic font

See Also:
Constant Field Values

STYLE_UNDERLINE

public static final int STYLE_UNDERLINE
Constant for an underlined font

See Also:
Constant Field Values

STYLE_STRIKETHROUGH

public static final int STYLE_STRIKETHROUGH
Constant for a strikethrough font

See Also:
Constant Field Values

STYLE_DOUBLE_STRIKETHROUGH

public static final int STYLE_DOUBLE_STRIKETHROUGH
Constant for a double strikethrough font

See Also:
Constant Field Values

STYLE_SHADOW

public static final int STYLE_SHADOW
Constant for a shadowed font

See Also:
Constant Field Values

STYLE_OUTLINE

public static final int STYLE_OUTLINE
Constant for an outlined font

See Also:
Constant Field Values

STYLE_EMBOSSED

public static final int STYLE_EMBOSSED
Constant for an embossed font

See Also:
Constant Field Values

STYLE_ENGRAVED

public static final int STYLE_ENGRAVED
Constant for an engraved font

See Also:
Constant Field Values

STYLE_HIDDEN

public static final int STYLE_HIDDEN
Constant for a font that hides the actual text.

See Also:
Constant Field Values

DEFAULT_FONT

public static final String DEFAULT_FONT
Default font

Since:
2.1.7
See Also:
Constant Field Values

fontName

private String fontName
The font name. Defaults to "Times New Roman"


fontSize

private int fontSize
The font size. Defaults to 10


fontStyle

private int fontStyle
The font style. Defaults to STYLE_NONE


fontNumber

private int fontNumber
The number of this font


color

private RtfColor color
The color of this font


charset

private int charset
The character set to use for this font


document

protected RtfDocument document
The RtfDocument this RtfFont belongs to.

Constructor Detail

RtfFont

public RtfFont(String fontName)
Constructs a RtfFont with the given font name and all other properties at their default values.

Parameters:
fontName - The font name to use

RtfFont

public RtfFont(String fontName,
               float size)
Constructs a RtfFont with the given font name and font size and all other properties at their default values.

Parameters:
fontName - The font name to use
size - The font size to use

RtfFont

public RtfFont(String fontName,
               float size,
               int style)
Constructs a RtfFont with the given font name, font size and font style and the default color.

Parameters:
fontName - The font name to use
size - The font size to use
style - The font style to use

RtfFont

public RtfFont(String fontName,
               float size,
               int style,
               Color color)
Constructs a RtfFont with the given font name, font size, font style and color.

Parameters:
fontName - The font name to use
size - the font size to use
style - The font style to use
color - The font color to use

RtfFont

public RtfFont(String fontName,
               float size,
               int style,
               Color color,
               int charset)
Constructs a RtfFont with the given font name, font size, font style, color and charset. This can be used when generating non latin-1 text.

Parameters:
fontName - The font name to use
size - the font size to use
style - The font style to use
color - The font color to use
charset - The charset of the font content

RtfFont

protected RtfFont(RtfDocument doc,
                  int fontNumber)
Special constructor for the default font

Parameters:
doc - The RtfDocument this font appears in
fontNumber - The id of this font

RtfFont

public RtfFont(RtfDocument doc,
               Font font)
Constructs a RtfFont from a com.lowagie.text.Font

Parameters:
doc - The RtfDocument this font appears in
font - The Font to use as a base
Method Detail

writeDefinition

public void writeDefinition(OutputStream result)
                     throws IOException
Writes the font definition

Specified by:
writeDefinition in interface RtfExtendedElement
Parameters:
result - The OutputStream to write the element definition to
Throws:
IOException

writeBegin

public void writeBegin(OutputStream result)
                throws IOException
Writes the font beginning

Parameters:
result - The OutputStream to write to.
Throws:
IOException - On i/o errors.

writeEnd

public void writeEnd(OutputStream result)
              throws IOException
Write the font end

Parameters:
result - The OutputStream to write to.
Throws:
IOException - On i/o errors.

writeContent

public void writeContent(OutputStream out)
                  throws IOException
unused

Specified by:
writeContent in interface RtfBasicElement
Parameters:
out - The OutputStream to write the content to
Throws:
IOException

equals

public boolean equals(Object obj)
Tests for equality of RtfFonts. RtfFonts are equal if their fontName, fontSize, fontStyle and fontSuperSubscript are equal

Overrides:
equals in class Object
Parameters:
obj - The RtfFont to compare with this RtfFont
Returns:
True if the RtfFonts are equal, false otherwise

hashCode

public int hashCode()
Returns the hash code of this RtfFont. The hash code is the hash code of the string containing the font name + font size + "-" + the font style + "-" + the font super/supscript value.

Overrides:
hashCode in class Object
Returns:
The hash code of this RtfFont

getFontName

public String getFontName()
Gets the font name of this RtfFont

Returns:
The font name

setFontName

protected void setFontName(String fontName)
Sets the font name of this RtfFont.

Parameters:
fontName - The font name to use

getFamilyname

public String getFamilyname()
Description copied from class: Font
Gets the familyname as a String.

Overrides:
getFamilyname in class Font
Returns:
the familyname
See Also:
Font.getFamilyname()

setFamily

public void setFamily(String family)
Description copied from class: Font
Sets the family using a String ("Courier", "Helvetica", "Times New Roman", "Symbol" or "ZapfDingbats").

Overrides:
setFamily in class Font
Parameters:
family - A String representing a certain font-family.
See Also:
Font.setFamily(String)

setToDefaultFamily

private void setToDefaultFamily(String familyname)
Sets the correct font name from the family name.

Parameters:
familyname - The family name to set the name to.

getFontSize

public int getFontSize()
Gets the font size of this RtfFont

Returns:
The font size

setSize

public void setSize(float size)
Description copied from class: Font
Sets the size.

Overrides:
setSize in class Font
Parameters:
size - The new size of the font.
See Also:
Font.setSize(float)

getFontStyle

public int getFontStyle()
Gets the font style of this RtfFont

Returns:
The font style

setStyle

public void setStyle(int style)
Description copied from class: Font
Sets the style.

Overrides:
setStyle in class Font
Parameters:
style - the style.
See Also:
Font.setStyle(int)

setStyle

public void setStyle(String style)
Description copied from class: Font
Sets the style using a String containing one of more of the following values: normal, bold, italic, underline, strike.

Overrides:
setStyle in class Font
Parameters:
style - A String representing a certain style.
See Also:
Font.setStyle(String)

getCharset

public int getCharset()
Gets the charset used for constructing this RtfFont.

Returns:
The charset of this RtfFont.

setCharset

public void setCharset(int charset)
Sets the charset used for constructing this RtfFont.

Parameters:
charset - The charset to use.

getFontNumber

public int getFontNumber()
Gets the font number of this RtfFont

Returns:
The font number

setRtfDocument

public void setRtfDocument(RtfDocument doc)
Sets the RtfDocument this RtfFont belongs to

Specified by:
setRtfDocument in interface RtfBasicElement
Parameters:
doc - The RtfDocument to use

setInTable

public void setInTable(boolean inTable)
Unused

Specified by:
setInTable in interface RtfBasicElement
Parameters:
inTable -

setInHeader

public void setInHeader(boolean inHeader)
Unused

Specified by:
setInHeader in interface RtfBasicElement
Parameters:
inHeader -

setColor

public void setColor(Color color)
Description copied from class: Font
Sets the color.

Overrides:
setColor in class Font
Parameters:
color - the new color of the font
See Also:
Font.setColor(Color)

setColor

public void setColor(int red,
                     int green,
                     int blue)
Description copied from class: Font
Sets the color.

Overrides:
setColor in class Font
Parameters:
red - the red-value of the new color
green - the green-value of the new color
blue - the blue-value of the new color
See Also:
Font.setColor(int, int, int)

intToByteArray

protected byte[] intToByteArray(int i)
Transforms an integer into its String representation and then returns the bytes of that string.

Parameters:
i - The integer to convert
Returns:
A byte array representing the integer

difference

public Font difference(Font font)
Replaces the attributes that are equal to null with the attributes of a given font.

Overrides:
difference in class Font
Parameters:
font - The surrounding font
Returns:
A RtfFont

isStandardFont

public boolean isStandardFont()
The RtfFont is never a standard font.

Overrides:
isStandardFont in class Font
Returns:
a boolean
Since:
2.1.0

compareTo

public int compareTo(Object object)
Compares this RtfFont to either a Font or an RtfFont.

Specified by:
compareTo in interface Comparable
Overrides:
compareTo in class Font
Parameters:
object - the other Font
Returns:
a value
Since:
2.1.0

Hosted by Hostbasket