com.lowagie.text.rtf.style

## Class RtfFont

- java.lang.Object
- - com.lowagie.text.Font
  - - com.lowagie.text.rtf.style.RtfFont

All Implemented Interfaces:
  RtfBasicElement, RtfExtendedElement, RtfElementInterface, java.lang.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$

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

Fields
`private int` `charset` The character set to use for this font
`private RtfColor` `color` The color of this font
`static java.lang.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 java.lang.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

Constructors
`` `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(java.lang.String fontName)` Constructs a RtfFont with the given font name and all other properties at their default values.
`` `RtfFont(java.lang.String fontName, float size)` Constructs a RtfFont with the given font name and font size and all other properties at their default values.
`` `RtfFont(java.lang.String fontName, float size, int style)` Constructs a RtfFont with the given font name, font size and font style and the default color.
`` `RtfFont(java.lang.String fontName, float size, int style, java.awt.Color color)` Constructs a RtfFont with the given font name, font size, font style and color.
`` `RtfFont(java.lang.String fontName, float size, int style, java.awt.Color color, int charset)` Constructs a RtfFont with the given font name, font size, font style, color and charset.

### Method Summary

Methods
`int` `compareTo(java.lang.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(java.lang.Object obj)` Tests for equality of RtfFonts.
`int` `getCharset()` Gets the charset used for constructing this RtfFont.
`java.lang.String` `getFamilyname()` Gets the familyname as a String.
`java.lang.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(java.awt.Color color)` Sets the color.
`void` `setColor(int red, int green, int blue)` Sets the color.
`void` `setFamily(java.lang.String family)` Sets the family using a `String` ("Courier", "Helvetica", "Times New Roman", "Symbol" or "ZapfDingbats").
`protected void` `setFontName(java.lang.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(java.lang.String style)` Sets the style using a `String` containing one of more of the following values: normal, bold, italic, underline, strike.
`private void` `setToDefaultFamily(java.lang.String familyname)` Sets the correct font name from the family name.
`void` `writeBegin(java.io.OutputStream result)` Writes the font beginning
`void` `writeContent(java.io.OutputStream out)` unused
`void` `writeDefinition(java.io.OutputStream result)` Writes the font definition
`void` `writeEnd(java.io.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 java.lang.String DEFAULT_FONT

Default font

Since:
  2.1.7
See Also:
  Constant Field Values

#### fontName

    private java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.String fontName,
           float size,
           int style,
           java.awt.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(java.lang.String fontName,
           float size,
           int style,
           java.awt.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(java.io.OutputStream result)
                         throws java.io.IOException

Writes the font definition

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

#### writeBegin

    public void writeBegin(java.io.OutputStream result)
                    throws java.io.IOException

Writes the font beginning

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

#### writeEnd

    public void writeEnd(java.io.OutputStream result)
                  throws java.io.IOException

Write the font end

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

#### writeContent

    public void writeContent(java.io.OutputStream out)
                      throws java.io.IOException

unused

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

#### equals

    public boolean equals(java.lang.Object obj)

Tests for equality of RtfFonts. RtfFonts are equal if their fontName, fontSize, fontStyle and fontSuperSubscript are equal

Overrides:
  `equals` in class `java.lang.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 `java.lang.Object`
Returns:
  The hash code of this RtfFont

#### getFontName

    public java.lang.String getFontName()

Gets the font name of this RtfFont

Returns:
  The font name

#### setFontName

    protected void setFontName(java.lang.String fontName)

Sets the font name of this RtfFont.

Parameters:
  `fontName` - The font name to use

#### getFamilyname

    public java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.awt.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(java.lang.Object object)

Compares this `RtfFont` to either a `Font` or an `RtfFont`.

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