com.lowagie.text.pdf

## Class BaseField

- java.lang.Object
- - com.lowagie.text.pdf.BaseField

- Direct Known Subclasses:
    PushbuttonField, RadioCheckField, TextField

      public abstract class BaseField
      extends java.lang.Object

  Common field variables.
  Author:
    Paulo Soares (psoares@consiste.pt)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `alignment`
    `protected java.awt.Color` | `backgroundColor`
    `static float` | `BORDER_WIDTH_MEDIUM` A medium border with 2 point width.
    `static float` | `BORDER_WIDTH_THICK` A thick border with 3 point width.
    `static float` | `BORDER_WIDTH_THIN` A thin border with 1 point width.
    `protected java.awt.Color` | `borderColor`
    `protected int` | `borderStyle`
    `protected float` | `borderWidth`
    `protected Rectangle` | `box`
    `static int` | `COMB` combo box flag.
    `static int` | `DO_NOT_SCROLL` The field will not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than will fit within its annotation rectangle.
    `static int` | `DO_NOT_SPELL_CHECK` The text entered in the field will not be spell-checked.
    `static int` | `EDIT` If set the combo box includes an editable text box as well as a drop list; if clear, it includes only a drop list.
    `private static java.util.HashMap` | `fieldKeys`
    `protected java.lang.String` | `fieldName` Holds value of property fieldName.
    `static int` | `FILE_SELECTION` The text entered in the field represents the pathname of a file whose contents are to be submitted as the value of the field.
    `protected BaseFont` | `font`
    `protected float` | `fontSize`
    `static int` | `HIDDEN` The field is hidden.
    `static int` | `HIDDEN_BUT_PRINTABLE` The field is hidden but is printable.
    `protected int` | `maxCharacterLength` Holds value of property maxCharacterLength.
    `static int` | `MULTILINE` The field may contain multiple lines of text.
    `static int` | `MULTISELECT` whether or not a list may have multiple selections.
    `protected int` | `options` Holds value of property options.
    `static int` | `PASSWORD` The field is intended for entering a secure password that should not be echoed visibly to the screen.
    `static int` | `READ_ONLY` The user may not change the value of the field.
    `static int` | `REQUIRED` The field must have a value at the time it is exported by a submit-form action.
    `protected int` | `rotation` Holds value of property rotation.
    `protected java.lang.String` | `text`
    `protected java.awt.Color` | `textColor`
    `protected int` | `visibility` Holds value of property visibility.
    `static int` | `VISIBLE` The field is visible.
    `static int` | `VISIBLE_BUT_DOES_NOT_PRINT` The field is visible but does not print.
    `protected PdfWriter` | `writer`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BaseField(PdfWriter writer, Rectangle box, java.lang.String fieldName)` Creates a new `TextField`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected static java.util.ArrayList` | `breakLines(java.util.ArrayList breaks, BaseFont font, float fontSize, float width)`
    `private void` | `drawBottomFrame(PdfAppearance app)`
    `private void` | `drawTopFrame(PdfAppearance app)`
    `int` | `getAlignment()` Gets the text horizontal alignment.
    `java.awt.Color` | `getBackgroundColor()` Gets the background color.
    `protected PdfAppearance` | `getBorderAppearance()`
    `java.awt.Color` | `getBorderColor()` Gets the border color.
    `int` | `getBorderStyle()` Gets the border style.
    `float` | `getBorderWidth()` Gets the border width in points.
    `Rectangle` | `getBox()` Gets the field dimension and position.
    `java.lang.String` | `getFieldName()` Gets the field name.
    `BaseFont` | `getFont()` Gets the text font.
    `float` | `getFontSize()` Gets the font size.
    `protected static java.util.ArrayList` | `getHardBreaks(java.lang.String text)`
    `int` | `getMaxCharacterLength()` Gets the maximum length of the field's text, in characters.
    `int` | `getOptions()` Gets the option flags.
    `protected BaseFont` | `getRealFont()`
    `int` | `getRotation()` Gets the field rotation.
    `java.lang.String` | `getText()` Gets the text.
    `java.awt.Color` | `getTextColor()` Gets the text color.
    `int` | `getVisibility()` Gets the field visibility flag.
    `PdfWriter` | `getWriter()` Getter for property writer.
    `static void` | `moveFields(PdfDictionary from, PdfDictionary to)` Moves the field keys from `from` to `to`.
    `void` | `setAlignment(int alignment)` Sets the text horizontal alignment.
    `void` | `setBackgroundColor(java.awt.Color backgroundColor)` Sets the background color.
    `void` | `setBorderColor(java.awt.Color borderColor)` Sets the border color.
    `void` | `setBorderStyle(int borderStyle)` Sets the border style.
    `void` | `setBorderWidth(float borderWidth)` Sets the border width in points.
    `void` | `setBox(Rectangle box)` Sets the field dimension and position.
    `void` | `setFieldName(java.lang.String fieldName)` Sets the field name.
    `void` | `setFont(BaseFont font)` Sets the text font.
    `void` | `setFontSize(float fontSize)` Sets the font size.
    `void` | `setMaxCharacterLength(int maxCharacterLength)` Sets the maximum length of the field's text, in characters.
    `void` | `setOptions(int options)` Sets the option flags.
    `void` | `setRotation(int rotation)` Sets the field rotation.
    `void` | `setRotationFromPage(Rectangle page)` Convenience method to set the field rotation the same as the page rotation.
    `void` | `setText(java.lang.String text)` Sets the text for text fields.
    `void` | `setTextColor(java.awt.Color textColor)` Sets the text color.
    `void` | `setVisibility(int visibility)` Sets the field visibility flag.
    `void` | `setWriter(PdfWriter writer)` Setter for property writer.
    `protected static void` | `trimRight(java.lang.StringBuffer buf)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### BORDER_WIDTH_THIN

          public static final float BORDER_WIDTH_THIN

      A thin border with 1 point width.
      See Also:
        Constant Field Values

    - #### BORDER_WIDTH_MEDIUM

          public static final float BORDER_WIDTH_MEDIUM

      A medium border with 2 point width.
      See Also:
        Constant Field Values

    - #### BORDER_WIDTH_THICK

          public static final float BORDER_WIDTH_THICK

      A thick border with 3 point width.
      See Also:
        Constant Field Values

    - #### VISIBLE

          public static final int VISIBLE

      The field is visible.
      See Also:
        Constant Field Values

    - #### HIDDEN

          public static final int HIDDEN

      The field is hidden.
      See Also:
        Constant Field Values

    - #### VISIBLE_BUT_DOES_NOT_PRINT

          public static final int VISIBLE_BUT_DOES_NOT_PRINT

      The field is visible but does not print.
      See Also:
        Constant Field Values

    - #### HIDDEN_BUT_PRINTABLE

          public static final int HIDDEN_BUT_PRINTABLE

      The field is hidden but is printable.
      See Also:
        Constant Field Values

    - #### READ_ONLY

          public static final int READ_ONLY

      The user may not change the value of the field.
      See Also:
        Constant Field Values

    - #### REQUIRED

          public static final int REQUIRED

      The field must have a value at the time it is exported by a submit-form action.
      See Also:
        Constant Field Values

    - #### MULTILINE

          public static final int MULTILINE

      The field may contain multiple lines of text. This flag is only meaningful with text fields.
      See Also:
        Constant Field Values

    - #### DO_NOT_SCROLL

          public static final int DO_NOT_SCROLL

      The field will not scroll (horizontally for single-line fields, vertically for multiple-line fields) to accommodate more text than will fit within its annotation rectangle. Once the field is full, no further text will be accepted.
      See Also:
        Constant Field Values

    - #### PASSWORD

          public static final int PASSWORD

      The field is intended for entering a secure password that should not be echoed visibly to the screen.
      See Also:
        Constant Field Values

    - #### FILE_SELECTION

          public static final int FILE_SELECTION

      The text entered in the field represents the pathname of a file whose contents are to be submitted as the value of the field.
      See Also:
        Constant Field Values

    - #### DO_NOT_SPELL_CHECK

          public static final int DO_NOT_SPELL_CHECK

      The text entered in the field will not be spell-checked. This flag is meaningful only in text fields and in combo fields with the `EDIT` flag set.
      See Also:
        Constant Field Values

    - #### EDIT

          public static final int EDIT

      If set the combo box includes an editable text box as well as a drop list; if clear, it includes only a drop list. This flag is only meaningful with combo fields.
      See Also:
        Constant Field Values

    - #### MULTISELECT

          public static final int MULTISELECT

      whether or not a list may have multiple selections. Only applies to /CH LIST fields, not combo boxes.
      See Also:
        Constant Field Values

    - #### COMB

          public static final int COMB

      combo box flag.
      See Also:
        Constant Field Values

    - #### borderWidth

          protected float borderWidth

    - #### borderStyle

          protected int borderStyle

    - #### borderColor

          protected java.awt.Color borderColor

    - #### backgroundColor

          protected java.awt.Color backgroundColor

    - #### textColor

          protected java.awt.Color textColor

    - #### font

          protected BaseFont font

    - #### fontSize

          protected float fontSize

    - #### alignment

          protected int alignment

    - #### writer

          protected PdfWriter writer

    - #### text

          protected java.lang.String text

    - #### box

          protected Rectangle box

    - #### rotation

          protected int rotation

      Holds value of property rotation.

    - #### visibility

          protected int visibility

      Holds value of property visibility.

    - #### fieldName

          protected java.lang.String fieldName

      Holds value of property fieldName.

    - #### options

          protected int options

      Holds value of property options.

    - #### maxCharacterLength

          protected int maxCharacterLength

      Holds value of property maxCharacterLength.

    - #### fieldKeys

          private static final java.util.HashMap fieldKeys

  - ### Constructor Detail

    - #### BaseField

          public BaseField(PdfWriter writer,
                   Rectangle box,
                   java.lang.String fieldName)

      Creates a new `TextField`.
      Parameters:
        `writer` - the document `PdfWriter`
        `box` - the field location and dimensions
        `fieldName` - the field name. If `null` only the widget keys will be included in the field allowing it to be used as a kid field.

  - ### Method Detail

    - #### getRealFont

          protected BaseFont getRealFont()
                                  throws java.io.IOException,
                                         DocumentException

      Throws:
        `java.io.IOException`
        `DocumentException`

    - #### getBorderAppearance

          protected PdfAppearance getBorderAppearance()

    - #### getHardBreaks

          protected static java.util.ArrayList getHardBreaks(java.lang.String text)

    - #### trimRight

          protected static void trimRight(java.lang.StringBuffer buf)

    - #### breakLines

          protected static java.util.ArrayList breakLines(java.util.ArrayList breaks,
                                       BaseFont font,
                                       float fontSize,
                                       float width)

    - #### drawTopFrame

          private void drawTopFrame(PdfAppearance app)

    - #### drawBottomFrame

          private void drawBottomFrame(PdfAppearance app)

    - #### getBorderWidth

          public float getBorderWidth()

      Gets the border width in points.
      Returns:
        the border width in points

    - #### setBorderWidth

          public void setBorderWidth(float borderWidth)

      Sets the border width in points. To eliminate the border set the border color to `null`.
      Parameters:
        `borderWidth` - the border width in points

    - #### getBorderStyle

          public int getBorderStyle()

      Gets the border style.
      Returns:
        the border style

    - #### setBorderStyle

          public void setBorderStyle(int borderStyle)

      Sets the border style. The styles are found in `PdfBorderDictionary` and can be `STYLE_SOLID`, `STYLE_DASHED`, `STYLE_BEVELED`, `STYLE_INSET` and `STYLE_UNDERLINE`.
      Parameters:
        `borderStyle` - the border style

    - #### getBorderColor

          public java.awt.Color getBorderColor()

      Gets the border color.
      Returns:
        the border color

    - #### setBorderColor

          public void setBorderColor(java.awt.Color borderColor)

      Sets the border color. Set to `null` to remove the border.
      Parameters:
        `borderColor` - the border color

    - #### getBackgroundColor

          public java.awt.Color getBackgroundColor()

      Gets the background color.
      Returns:
        the background color

    - #### setBackgroundColor

          public void setBackgroundColor(java.awt.Color backgroundColor)

      Sets the background color. Set to `null` for transparent background.
      Parameters:
        `backgroundColor` - the background color

    - #### getTextColor

          public java.awt.Color getTextColor()

      Gets the text color.
      Returns:
        the text color

    - #### setTextColor

          public void setTextColor(java.awt.Color textColor)

      Sets the text color. If `null` the color used will be black.
      Parameters:
        `textColor` - the text color

    - #### getFont

          public BaseFont getFont()

      Gets the text font.
      Returns:
        the text font

    - #### setFont

          public void setFont(BaseFont font)

      Sets the text font. If `null` then Helvetica will be used.
      Parameters:
        `font` - the text font

    - #### getFontSize

          public float getFontSize()

      Gets the font size.
      Returns:
        the font size

    - #### setFontSize

          public void setFontSize(float fontSize)

      Sets the font size. If 0 then auto-sizing will be used but only for text fields.
      Parameters:
        `fontSize` - the font size

    - #### getAlignment

          public int getAlignment()

      Gets the text horizontal alignment.
      Returns:
        the text horizontal alignment

    - #### setAlignment

          public void setAlignment(int alignment)

      Sets the text horizontal alignment. It can be `Element.ALIGN_LEFT`, `Element.ALIGN_CENTER` and `Element.ALIGN_RIGHT`.
      Parameters:
        `alignment` - the text horizontal alignment

    - #### getText

          public java.lang.String getText()

      Gets the text.
      Returns:
        the text

    - #### setText

          public void setText(java.lang.String text)

      Sets the text for text fields.
      Parameters:
        `text` - the text

    - #### getBox

          public Rectangle getBox()

      Gets the field dimension and position.
      Returns:
        the field dimension and position

    - #### setBox

          public void setBox(Rectangle box)

      Sets the field dimension and position.
      Parameters:
        `box` - the field dimension and position

    - #### getRotation

          public int getRotation()

      Gets the field rotation.
      Returns:
        the field rotation

    - #### setRotation

          public void setRotation(int rotation)

      Sets the field rotation. This value should be the same as the page rotation where the field will be shown.
      Parameters:
        `rotation` - the field rotation

    - #### setRotationFromPage

          public void setRotationFromPage(Rectangle page)

      Convenience method to set the field rotation the same as the page rotation.
      Parameters:
        `page` - the page

    - #### getVisibility

          public int getVisibility()

      Gets the field visibility flag.
      Returns:
        the field visibility flag

    - #### setVisibility

          public void setVisibility(int visibility)

      Sets the field visibility flag. This flags can be one of `VISIBLE`, `HIDDEN`, `VISIBLE_BUT_DOES_NOT_PRINT` and `HIDDEN_BUT_PRINTABLE`.
      Parameters:
        `visibility` - field visibility flag

    - #### getFieldName

          public java.lang.String getFieldName()

      Gets the field name.
      Returns:
        the field name

    - #### setFieldName

          public void setFieldName(java.lang.String fieldName)

      Sets the field name.
      Parameters:
        `fieldName` - the field name. If `null` only the widget keys will be included in the field allowing it to be used as a kid field.

    - #### getOptions

          public int getOptions()

      Gets the option flags.
      Returns:
        the option flags

    - #### setOptions

          public void setOptions(int options)

      Sets the option flags. The option flags can be a combination by oring of `READ_ONLY`, `REQUIRED`, `MULTILINE`, `DO_NOT_SCROLL`, `PASSWORD`, `FILE_SELECTION`, `DO_NOT_SPELL_CHECK` and `EDIT`.
      Parameters:
        `options` - the option flags

    - #### getMaxCharacterLength

          public int getMaxCharacterLength()

      Gets the maximum length of the field's text, in characters.
      Returns:
        the maximum length of the field's text, in characters.

    - #### setMaxCharacterLength

          public void setMaxCharacterLength(int maxCharacterLength)

      Sets the maximum length of the field's text, in characters. It is only meaningful for text fields.
      Parameters:
        `maxCharacterLength` - the maximum length of the field's text, in characters

    - #### getWriter

          public PdfWriter getWriter()

      Getter for property writer.
      Returns:
        Value of property writer.

    - #### setWriter

          public void setWriter(PdfWriter writer)

      Setter for property writer.
      Parameters:
        `writer` - New value of property writer.

    - #### moveFields

          public static void moveFields(PdfDictionary from,
                        PdfDictionary to)

      Moves the field keys from `from` to `to`. The moved keys are removed from `from`.
      Parameters:
        `from` - the source
        `to` - the destination. It may be `null`