com.lowagie.text

## Class Rectangle

- java.lang.Object
- - com.lowagie.text.Rectangle

All Implemented Interfaces:
  Element

Direct Known Subclasses:
  Cell, HeaderFooter, Image, PdfCell, PdfPCell, PdfTable, RectangleReadOnly, SimpleCell, SimpleTable, Table

    public class Rectangle
    extends java.lang.Object
    implements Element

A `Rectangle` is the representation of a geometric figure. Rectangles support constant width borders using `setBorderWidth(float)`and `setBorder(int)`. They also support borders that vary in width/color on each side using methods like `setBorderWidthLeft(float)`or `setBorderColorLeft(java.awt.Color)`.

See Also:
  `Element`, `Table`, `Cell`, `HeaderFooter`

### Field Summary

Fields
`protected java.awt.Color` `backgroundColor` This is the color of the background of this rectangle.
`protected int` `border` This represents the status of the 4 sides of the rectangle.
`protected java.awt.Color` `borderColor` The color of the border of this rectangle.
`protected java.awt.Color` `borderColorBottom` The color of the bottom border of this rectangle.
`protected java.awt.Color` `borderColorLeft` The color of the left border of this rectangle.
`protected java.awt.Color` `borderColorRight` The color of the right border of this rectangle.
`protected java.awt.Color` `borderColorTop` The color of the top border of this rectangle.
`protected float` `borderWidth` This is the width of the border around this rectangle.
`protected float` `borderWidthBottom` The width of the bottom border of this rectangle.
`protected float` `borderWidthLeft` The width of the left border of this rectangle.
`protected float` `borderWidthRight` The width of the right border of this rectangle.
`protected float` `borderWidthTop` The width of the top border of this rectangle.
`static int` `BOTTOM` This represents one side of the border of the `Rectangle`.
`static int` `BOX` This represents a type of border.
`static int` `LEFT` This represents one side of the border of the `Rectangle`.
`protected float` `llx` the lower left x-coordinate.
`protected float` `lly` the lower left y-coordinate.
`static int` `NO_BORDER` This represents a rectangle without borders.
`static int` `RIGHT` This represents one side of the border of the `Rectangle`.
`protected int` `rotation` The rotation of the Rectangle
`static int` `TOP` This represents one side of the border of the `Rectangle`.
`static int` `UNDEFINED` This is the value that will be used as undefined .
`protected float` `urx` the upper right x-coordinate.
`protected float` `ury` the upper right y-coordinate.
`protected boolean` `useVariableBorders` Whether variable width/color borders are used.

### Fields inherited from interface com.lowagie.text.Element

`ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_JUSTIFIED, ALIGN_JUSTIFIED_ALL, ALIGN_LEFT, ALIGN_MIDDLE, ALIGN_RIGHT, ALIGN_TOP, ALIGN_UNDEFINED, ANCHOR, ANNOTATION, AUTHOR, CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFBLOCK, CCITT_ENDOFLINE, CCITTG3_1D, CCITTG3_2D, CCITTG4, CELL, CHAPTER, CHUNK, CREATIONDATE, CREATOR, HEADER, IMGRAW, IMGTEMPLATE, JBIG2, JPEG, JPEG2000, KEYWORDS, LIST, LISTITEM, MARKED, MULTI_COLUMN_TEXT, PARAGRAPH, PHRASE, PRODUCER, PTABLE, RECTANGLE, ROW, SECTION, SUBJECT, TABLE, TITLE, YMARK`

### Constructor Summary

Constructors
Constructor and Description
`Rectangle(float urx, float ury)` Constructs a `Rectangle` -object starting from the origin (0, 0).
`Rectangle(float llx, float lly, float urx, float ury)` Constructs a `Rectangle` -object.
`Rectangle(Rectangle rect)` Constructs a `Rectangle` -object.

### Method Summary

Methods
`void` `cloneNonPositionParameters(Rectangle rect)` Copies each of the parameters, except the position, from a `Rectangle` object
`void` `disableBorderSide(int side)` Disables the border on the specified side.
`void` `enableBorderSide(int side)` Enables the border on the specified side.
`java.awt.Color` `getBackgroundColor()` Gets the backgroundcolor.
`int` `getBorder()` Returns the exact type of the border.
`java.awt.Color` `getBorderColor()` Gets the color of the border.
`java.awt.Color` `getBorderColorBottom()` Gets the color of the bottom border.
`java.awt.Color` `getBorderColorLeft()` Gets the color of the left border.
`java.awt.Color` `getBorderColorRight()` Gets the color of the right border.
`java.awt.Color` `getBorderColorTop()` Gets the color of the top border.
`float` `getBorderWidth()` Gets the borderwidth.
`float` `getBorderWidthBottom()` Gets the width of the bottom border.
`float` `getBorderWidthLeft()` Gets the width of the left border.
`float` `getBorderWidthRight()` Gets the width of the right border.
`float` `getBorderWidthTop()` Gets the width of the top border.
`float` `getBottom()` Returns the lower left y-coordinate.
`float` `getBottom(float margin)` Returns the lower left y-coordinate, considering a given margin.
`java.util.ArrayList` `getChunks()` Gets all the chunks in this element.
`float` `getGrayFill()` Gets the grayscale.
`float` `getHeight()` Returns the height of the rectangle.
`float` `getLeft()` Returns the lower left x-coordinate.
`float` `getLeft(float margin)` Returns the lower left x-coordinate, considering a given margin.
`float` `getRight()` Returns the upper right x-coordinate.
`float` `getRight(float margin)` Returns the upper right x-coordinate, considering a given margin.
`int` `getRotation()` Gets the rotation of the rectangle
`float` `getTop()` Returns the upper right y-coordinate.
`float` `getTop(float margin)` Returns the upper right y-coordinate, considering a given margin.
`private float` `getVariableBorderWidth(float variableWidthValue, int side)` Helper function returning the border width of a specific side.
`float` `getWidth()` Returns the width of the rectangle.
`boolean` `hasBorder(int type)` Indicates whether the specified type of border is set.
`boolean` `hasBorders()` Indicates whether some type of border is set.
`boolean` `isContent()` Checks if this element is a content object.
`boolean` `isNestable()` Checks if this element is nestable.
`boolean` `isUseVariableBorders()` Indicates whether variable width borders are being used.
`void` `normalize()` Normalizes the rectangle.
`boolean` `process(ElementListener listener)` Processes the element by adding it (or the different parts) to an `ElementListener`.
`Rectangle` `rectangle(float top, float bottom)` Gets a Rectangle that is altered to fit on the page.
`Rectangle` `rotate()` Rotates the rectangle.
`void` `setBackgroundColor(java.awt.Color backgroundColor)` Sets the backgroundcolor of the rectangle.
`void` `setBorder(int border)` Enables/Disables the border on the specified sides.
`void` `setBorderColor(java.awt.Color borderColor)` Sets the color of the border.
`void` `setBorderColorBottom(java.awt.Color borderColorBottom)` Sets the color of the bottom border.
`void` `setBorderColorLeft(java.awt.Color borderColorLeft)` Sets the color of the left border.
`void` `setBorderColorRight(java.awt.Color borderColorRight)` Sets the color of the right border.
`void` `setBorderColorTop(java.awt.Color borderColorTop)` Sets the color of the top border.
`void` `setBorderWidth(float borderWidth)` Sets the borderwidth of the table.
`void` `setBorderWidthBottom(float borderWidthBottom)` Sets the width of the bottom border.
`void` `setBorderWidthLeft(float borderWidthLeft)` Sets the width of the left border.
`void` `setBorderWidthRight(float borderWidthRight)` Sets the width of the right border.
`void` `setBorderWidthTop(float borderWidthTop)` Sets the width of the top border.
`void` `setBottom(float lly)` Sets the lower left y-coordinate.
`void` `setGrayFill(float value)` Sets the the background color to a grayscale value.
`void` `setLeft(float llx)` Sets the lower left x-coordinate.
`void` `setRight(float urx)` Sets the upper right x-coordinate.
`void` `setTop(float ury)` Sets the upper right y-coordinate.
`void` `setUseVariableBorders(boolean useVariableBorders)` Sets a parameter indicating if the rectangle has variable borders
`void` `softCloneNonPositionParameters(Rectangle rect)` Copies each of the parameters, except the position, from a `Rectangle` object if the value is set there
`java.lang.String` `toString()` Gets the content of the text element.
`int` `type()` Gets the type of the text element.
`private void` `updateBorderBasedOnWidth(float width, int side)` Helper function updating the border flag for a side based on the specified width.

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

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

### Field Detail

#### UNDEFINED

    public static final int UNDEFINED

This is the value that will be used as undefined .

See Also:
  Constant Field Values

#### TOP

    public static final int TOP

This represents one side of the border of the `Rectangle`.

See Also:
  Constant Field Values

#### BOTTOM

    public static final int BOTTOM

This represents one side of the border of the `Rectangle`.

See Also:
  Constant Field Values

#### LEFT

    public static final int LEFT

This represents one side of the border of the `Rectangle`.

See Also:
  Constant Field Values

#### RIGHT

    public static final int RIGHT

This represents one side of the border of the `Rectangle`.

See Also:
  Constant Field Values

#### NO_BORDER

    public static final int NO_BORDER

This represents a rectangle without borders.

See Also:
  Constant Field Values

#### BOX

    public static final int BOX

This represents a type of border.

See Also:
  Constant Field Values

#### llx

    protected float llx

the lower left x-coordinate.

#### lly

    protected float lly

the lower left y-coordinate.

#### urx

    protected float urx

the upper right x-coordinate.

#### ury

    protected float ury

the upper right y-coordinate.

#### rotation

    protected int rotation

The rotation of the Rectangle

#### backgroundColor

    protected java.awt.Color backgroundColor

This is the color of the background of this rectangle.

#### border

    protected int border

This represents the status of the 4 sides of the rectangle.

#### useVariableBorders

    protected boolean useVariableBorders

Whether variable width/color borders are used.

#### borderWidth

    protected float borderWidth

This is the width of the border around this rectangle.

#### borderWidthLeft

    protected float borderWidthLeft

The width of the left border of this rectangle.

#### borderWidthRight

    protected float borderWidthRight

The width of the right border of this rectangle.

#### borderWidthTop

    protected float borderWidthTop

The width of the top border of this rectangle.

#### borderWidthBottom

    protected float borderWidthBottom

The width of the bottom border of this rectangle.

#### borderColor

    protected java.awt.Color borderColor

The color of the border of this rectangle.

#### borderColorLeft

    protected java.awt.Color borderColorLeft

The color of the left border of this rectangle.

#### borderColorRight

    protected java.awt.Color borderColorRight

The color of the right border of this rectangle.

#### borderColorTop

    protected java.awt.Color borderColorTop

The color of the top border of this rectangle.

#### borderColorBottom

    protected java.awt.Color borderColorBottom

The color of the bottom border of this rectangle.

### Constructor Detail

#### Rectangle

    public Rectangle(float llx,
             float lly,
             float urx,
             float ury)

Constructs a `Rectangle` -object.

Parameters:
  `llx` - lower left x
  `lly` - lower left y
  `urx` - upper right x
  `ury` - upper right y

#### Rectangle

    public Rectangle(float urx,
             float ury)

Constructs a `Rectangle` -object starting from the origin (0, 0).

Parameters:
  `urx` - upper right x
  `ury` - upper right y

#### Rectangle

    public Rectangle(Rectangle rect)

Constructs a `Rectangle` -object.

Parameters:
  `rect` - another `Rectangle`

### Method Detail

#### process

    public boolean process(ElementListener listener)

Processes the element by adding it (or the different parts) to an `ElementListener`.

Specified by:
  `process` in interface `Element`
Parameters:
  `listener` - an `ElementListener`
Returns:
  `true` if the element was processed successfully

#### type

    public int type()

Gets the type of the text element.

Specified by:
  `type` in interface `Element`
Returns:
  a type

#### getChunks

    public java.util.ArrayList getChunks()

Gets all the chunks in this element.

Specified by:
  `getChunks` in interface `Element`
Returns:
  an `ArrayList`

#### isContent

    public boolean isContent()

Description copied from interface: `Element`
Checks if this element is a content object. If not, it's a metadata object.

Specified by:
  `isContent` in interface `Element`
Returns:
  true if this is a 'content' element; false if this is a 'metadata' element
Since:
  iText 2.0.8
See Also:
  `Element.isContent()`

#### isNestable

    public boolean isNestable()

Description copied from interface: `Element`
Checks if this element is nestable.

Specified by:
  `isNestable` in interface `Element`
Returns:
  true if this element can be nested inside other elements.
Since:
  iText 2.0.8
See Also:
  `Element.isNestable()`

#### setLeft

    public void setLeft(float llx)

Sets the lower left x-coordinate.

Parameters:
  `llx` - the new value

#### getLeft

    public float getLeft()

Returns the lower left x-coordinate.

Returns:
  the lower left x-coordinate

#### getLeft

    public float getLeft(float margin)

Returns the lower left x-coordinate, considering a given margin.

Parameters:
  `margin` - a margin
Returns:
  the lower left x-coordinate

#### setRight

    public void setRight(float urx)

Sets the upper right x-coordinate.

Parameters:
  `urx` - the new value

#### getRight

    public float getRight()

Returns the upper right x-coordinate.

Returns:
  the upper right x-coordinate

#### getRight

    public float getRight(float margin)

Returns the upper right x-coordinate, considering a given margin.

Parameters:
  `margin` - a margin
Returns:
  the upper right x-coordinate

#### getWidth

    public float getWidth()

Returns the width of the rectangle.

Returns:
  the width

#### setTop

    public void setTop(float ury)

Sets the upper right y-coordinate.

Parameters:
  `ury` - the new value

#### getTop

    public float getTop()

Returns the upper right y-coordinate.

Returns:
  the upper right y-coordinate

#### getTop

    public float getTop(float margin)

Returns the upper right y-coordinate, considering a given margin.

Parameters:
  `margin` - a margin
Returns:
  the upper right y-coordinate

#### setBottom

    public void setBottom(float lly)

Sets the lower left y-coordinate.

Parameters:
  `lly` - the new value

#### getBottom

    public float getBottom()

Returns the lower left y-coordinate.

Returns:
  the lower left y-coordinate

#### getBottom

    public float getBottom(float margin)

Returns the lower left y-coordinate, considering a given margin.

Parameters:
  `margin` - a margin
Returns:
  the lower left y-coordinate

#### getHeight

    public float getHeight()

Returns the height of the rectangle.

Returns:
  the height

#### normalize

    public void normalize()

Normalizes the rectangle. Switches lower left with upper right if necessary.

#### getRotation

    public int getRotation()

Gets the rotation of the rectangle

Returns:
  a rotation value

#### rotate

    public Rectangle rotate()

Rotates the rectangle. Swaps the values of llx and lly and of urx and ury.

Returns:
  the rotated `Rectangle`

#### getBackgroundColor

    public java.awt.Color getBackgroundColor()

Gets the backgroundcolor.

Returns:
  a `Color`

#### setBackgroundColor

    public void setBackgroundColor(java.awt.Color backgroundColor)

Sets the backgroundcolor of the rectangle.

Parameters:
  `backgroundColor` - a `Color`

#### getGrayFill

    public float getGrayFill()

Gets the grayscale.

Returns:
  the grayscale color of the background or 0 if the background has no grayscale color.

#### setGrayFill

    public void setGrayFill(float value)

Sets the the background color to a grayscale value.

Parameters:
  `value` - the new grayscale value

#### getBorder

    public int getBorder()

Returns the exact type of the border.

Returns:
  a value

#### hasBorders

    public boolean hasBorders()

Indicates whether some type of border is set.

Returns:
  a boolean

#### hasBorder

    public boolean hasBorder(int type)

Indicates whether the specified type of border is set.

Parameters:
  `type` - the type of border
Returns:
  a boolean

#### setBorder

    public void setBorder(int border)

Enables/Disables the border on the specified sides. The border is specified as an integer bitwise combination of the constants: `LEFT, RIGHT, TOP, BOTTOM`.

Parameters:
  `border` - the new value
See Also:
  `enableBorderSide(int)`, `disableBorderSide(int)`

#### isUseVariableBorders

    public boolean isUseVariableBorders()

Indicates whether variable width borders are being used. Returns true if `setBorderWidthLeft, setBorderWidthRight, setBorderWidthTop, or setBorderWidthBottom` has been called.

Returns:
  true if variable width borders are in use

#### setUseVariableBorders

    public void setUseVariableBorders(boolean useVariableBorders)

Sets a parameter indicating if the rectangle has variable borders

Parameters:
  `useVariableBorders` - indication if the rectangle has variable borders

#### enableBorderSide

    public void enableBorderSide(int side)

Enables the border on the specified side.

Parameters:
  `side` - the side to enable. One of `LEFT, RIGHT, TOP, BOTTOM`

#### disableBorderSide

    public void disableBorderSide(int side)

Disables the border on the specified side.

Parameters:
  `side` - the side to disable. One of `LEFT, RIGHT, TOP, BOTTOM`

#### getBorderWidth

    public float getBorderWidth()

Gets the borderwidth.

Returns:
  a value

#### setBorderWidth

    public void setBorderWidth(float borderWidth)

Sets the borderwidth of the table.

Parameters:
  `borderWidth` - the new value

#### getVariableBorderWidth

    private float getVariableBorderWidth(float variableWidthValue,
                               int side)

Helper function returning the border width of a specific side.

Parameters:
  `variableWidthValue` - a variable width (could be undefined)
  `side` - the border you want to check
Returns:
  the variableWidthValue if not undefined, otherwise the borderWidth

#### updateBorderBasedOnWidth

    private void updateBorderBasedOnWidth(float width,
                                int side)

Helper function updating the border flag for a side based on the specified width. A width of 0 will disable the border on that side. Any other width enables it.

Parameters:
  `width` - width of border
  `side` - border side constant

#### getBorderWidthLeft

    public float getBorderWidthLeft()

Gets the width of the left border.

Returns:
  a width

#### setBorderWidthLeft

    public void setBorderWidthLeft(float borderWidthLeft)

Sets the width of the left border.

Parameters:
  `borderWidthLeft` - a width

#### getBorderWidthRight

    public float getBorderWidthRight()

Gets the width of the right border.

Returns:
  a width

#### setBorderWidthRight

    public void setBorderWidthRight(float borderWidthRight)

Sets the width of the right border.

Parameters:
  `borderWidthRight` - a width

#### getBorderWidthTop

    public float getBorderWidthTop()

Gets the width of the top border.

Returns:
  a width

#### setBorderWidthTop

    public void setBorderWidthTop(float borderWidthTop)

Sets the width of the top border.

Parameters:
  `borderWidthTop` - a width

#### getBorderWidthBottom

    public float getBorderWidthBottom()

Gets the width of the bottom border.

Returns:
  a width

#### setBorderWidthBottom

    public void setBorderWidthBottom(float borderWidthBottom)

Sets the width of the bottom border.

Parameters:
  `borderWidthBottom` - a width

#### getBorderColor

    public java.awt.Color getBorderColor()

Gets the color of the border.

Returns:
  a `Color`

#### setBorderColor

    public void setBorderColor(java.awt.Color borderColor)

Sets the color of the border.

Parameters:
  `borderColor` - a `Color`

#### getBorderColorLeft

    public java.awt.Color getBorderColorLeft()

Gets the color of the left border.

Returns:
  a `Color`

#### setBorderColorLeft

    public void setBorderColorLeft(java.awt.Color borderColorLeft)

Sets the color of the left border.

Parameters:
  `borderColorLeft` - a `Color`

#### getBorderColorRight

    public java.awt.Color getBorderColorRight()

Gets the color of the right border.

Returns:
  a `Color`

#### setBorderColorRight

    public void setBorderColorRight(java.awt.Color borderColorRight)

Sets the color of the right border.

Parameters:
  `borderColorRight` - a `Color`

#### getBorderColorTop

    public java.awt.Color getBorderColorTop()

Gets the color of the top border.

Returns:
  a `Color`

#### setBorderColorTop

    public void setBorderColorTop(java.awt.Color borderColorTop)

Sets the color of the top border.

Parameters:
  `borderColorTop` - a `Color`

#### getBorderColorBottom

    public java.awt.Color getBorderColorBottom()

Gets the color of the bottom border.

Returns:
  a `Color`

#### setBorderColorBottom

    public void setBorderColorBottom(java.awt.Color borderColorBottom)

Sets the color of the bottom border.

Parameters:
  `borderColorBottom` - a `Color`

#### rectangle

    public Rectangle rectangle(float top,
                      float bottom)

Gets a Rectangle that is altered to fit on the page.

Parameters:
  `top` - the top position
  `bottom` - the bottom position
Returns:
  a `Rectangle`

#### cloneNonPositionParameters

    public void cloneNonPositionParameters(Rectangle rect)

Copies each of the parameters, except the position, from a `Rectangle` object

Parameters:
  `rect` - `Rectangle` to copy from

#### softCloneNonPositionParameters

    public void softCloneNonPositionParameters(Rectangle rect)

Copies each of the parameters, except the position, from a `Rectangle` object if the value is set there

Parameters:
  `rect` - `Rectangle` to copy from

#### toString

    public java.lang.String toString()

Description copied from interface: `Element`
Gets the content of the text element.

Specified by:
  `toString` in interface `Element`
Overrides:
  `toString` in class `java.lang.Object`
Returns:
  a String representation of the rectangle
See Also:
  `Object.toString()`