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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier | Constructor and Description
    --- | ---
    `` | `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
    Modifier and Type | Method and Description
    --- | ---
    `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