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