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
`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
`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`