Class Border
- java.lang.Object
-
- com.itextpdf.layout.borders.Border
-
- Direct Known Subclasses:
AbstractFormBorder
,Border3D
,DashedBorder
,DottedBorder
,DoubleBorder
,FixedDashedBorder
,RoundDotsBorder
,SolidBorder
public abstract class Border extends java.lang.Object
Represents a border.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Border.Side
Enumerates the different sides of the rectangle.
-
Field Summary
Fields Modifier and Type Field Description static int
_3D_GROOVE
The 3D groove border.static int
_3D_INSET
The 3D inset border.static int
_3D_OUTSET
The 3D outset border.static int
_3D_RIDGE
The 3D ridge border.private static int
ARC_BOTTOM_DEGREE
private static int
ARC_LEFT_DEGREE
private static int
ARC_QUARTER_CLOCKWISE_EXTENT
private static int
ARC_RIGHT_DEGREE
private static int
ARC_TOP_DEGREE
static int
DASHED
The dashed border.static int
DASHED_FIXED
The fixed dashed border.static int
DOTTED
The dotted border.static int
DOUBLE
The double border.private int
hash
The hash value for the border.static Border
NO_BORDER
The null Border, i.e.static int
ROUND_DOTS
The round-dots border.static int
SOLID
The solid border.protected TransparentColor
transparentColor
The color of the border.protected int
type
The type of the border.protected float
width
The width of the border.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
draw(PdfCanvas canvas, float x1, float y1, float x2, float y2, float horizontalRadius1, float verticalRadius1, float horizontalRadius2, float verticalRadius2, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter)
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction.void
draw(PdfCanvas canvas, float x1, float y1, float x2, float y2, float borderRadius, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter)
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction.abstract void
draw(PdfCanvas canvas, float x1, float y1, float x2, float y2, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter)
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction.void
draw(PdfCanvas canvas, Rectangle rectangle)
Draw borders around the target rectangle.abstract void
drawCellBorder(PdfCanvas canvas, float x1, float y1, float x2, float y2, Border.Side defaultSide)
Draws the border of a cell.protected void
drawDiscontinuousBorders(PdfCanvas canvas, Rectangle boundingRectangle, float[] horizontalRadii, float[] verticalRadii, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter)
Perform drawing operations to draw discontinuous borders.boolean
equals(java.lang.Object anObject)
Indicates whether the border is equal to the given border.protected Border.Side
getBorderSide(float x1, float y1, float x2, float y2, Border.Side defaultSide)
Returns theside
corresponded to the line between two points.Color
getColor()
protected float
getDotsGap(double distance, float initialGap)
Adjusts the size of the gap between dotsprotected Point
getIntersectionPoint(Point lineBeg, Point lineEnd, Point clipLineBeg, Point clipLineEnd)
Gets aPoint
in which two lines intersect.float
getOpacity()
Gets the opacity of theborder
protected float[]
getStartingPointsForBorderSide(float x1, float y1, float x2, float y2, Border.Side defaultSide)
Calculate adjusted starting points for discontinuous borders, given two opposing points (A and B) that define the bounding rectangleabstract int
getType()
Returns the type of theborder
float
getWidth()
Gets the width of theborder
int
hashCode()
void
setColor(Color color)
void
setWidth(float width)
Sets the width of theborder
-
-
-
Field Detail
-
NO_BORDER
public static final Border NO_BORDER
The null Border, i.e. the presence of such border is equivalent to the absence of the border
-
SOLID
public static final int SOLID
The solid border.- See Also:
SolidBorder
, Constant Field Values
-
DASHED
public static final int DASHED
The dashed border.- See Also:
DashedBorder
, Constant Field Values
-
DOTTED
public static final int DOTTED
The dotted border.- See Also:
DottedBorder
, Constant Field Values
-
DOUBLE
public static final int DOUBLE
The double border.- See Also:
DoubleBorder
, Constant Field Values
-
ROUND_DOTS
public static final int ROUND_DOTS
The round-dots border.- See Also:
RoundDotsBorder
, Constant Field Values
-
_3D_GROOVE
public static final int _3D_GROOVE
The 3D groove border.- See Also:
GrooveBorder
, Constant Field Values
-
_3D_INSET
public static final int _3D_INSET
The 3D inset border.- See Also:
InsetBorder
, Constant Field Values
-
_3D_OUTSET
public static final int _3D_OUTSET
The 3D outset border.- See Also:
OutsetBorder
, Constant Field Values
-
_3D_RIDGE
public static final int _3D_RIDGE
The 3D ridge border.- See Also:
RidgeBorder
, Constant Field Values
-
DASHED_FIXED
public static final int DASHED_FIXED
The fixed dashed border.- See Also:
FixedDashedBorder
, Constant Field Values
-
ARC_RIGHT_DEGREE
private static final int ARC_RIGHT_DEGREE
- See Also:
- Constant Field Values
-
ARC_TOP_DEGREE
private static final int ARC_TOP_DEGREE
- See Also:
- Constant Field Values
-
ARC_LEFT_DEGREE
private static final int ARC_LEFT_DEGREE
- See Also:
- Constant Field Values
-
ARC_BOTTOM_DEGREE
private static final int ARC_BOTTOM_DEGREE
- See Also:
- Constant Field Values
-
ARC_QUARTER_CLOCKWISE_EXTENT
private static final int ARC_QUARTER_CLOCKWISE_EXTENT
- See Also:
- Constant Field Values
-
transparentColor
protected TransparentColor transparentColor
The color of the border.- See Also:
TransparentColor
-
width
protected float width
The width of the border.
-
type
protected int type
The type of the border.
-
hash
private int hash
The hash value for the border.
-
-
Constructor Detail
-
Border
protected Border(float width)
- Parameters:
width
- the width which the border should have
-
Border
protected Border(Color color, float width)
- Parameters:
color
- the color which the border should havewidth
- the width which the border should have
-
Border
protected Border(Color color, float width, float opacity)
- Parameters:
color
- the color which the border should havewidth
- the width which the border should haveopacity
- the opacity which border should have; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
-
-
Method Detail
-
draw
public abstract void draw(PdfCanvas canvas, float x1, float y1, float x2, float y2, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter)
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction. Borders are drawn in this order: top, right, bottom, left.Given points specify the line which lies on the border of the content area, therefore the border itself should be drawn to the left from the drawing direction.
borderWidthBefore
andborderWidthAfter
parameters are used to define the widths of the borders that are before and after the current border, e.g. for the bottom border,borderWidthBefore
specifies width of the right border andborderWidthAfter
- width of the left border. Those width are used to handle areas of border joins.- Parameters:
canvas
- PdfCanvas to be written tox1
- x coordinate of the beginning point of the element side, that should be borderedy1
- y coordinate of the beginning point of the element side, that should be borderedx2
- x coordinate of the ending point of the element side, that should be borderedy2
- y coordinate of the ending point of the element side, that should be bordereddefaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinatesborderWidthBefore
- defines width of the border that is before the current oneborderWidthAfter
- defines width of the border that is after the current one
-
draw
public void draw(PdfCanvas canvas, Rectangle rectangle)
Draw borders around the target rectangle.- Parameters:
canvas
- PdfCanvas to be written torectangle
- border positions rectangle
-
draw
public void draw(PdfCanvas canvas, float x1, float y1, float x2, float y2, float borderRadius, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter)
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction. Borders are drawn in this order: top, right, bottom, left.Given points specify the line which lies on the border of the content area, therefore the border itself should be drawn to the left from the drawing direction.
borderWidthBefore
andborderWidthAfter
parameters are used to define the widths of the borders that are before and after the current border, e.g. for the bottom border,borderWidthBefore
specifies width of the right border andborderWidthAfter
- width of the left border. Those width are used to handle areas of border joins.borderRadius
is used to draw rounded borders.- Parameters:
canvas
- PdfCanvas to be written tox1
- x coordinate of the beginning point of the element side, that should be borderedy1
- y coordinate of the beginning point of the element side, that should be borderedx2
- x coordinate of the ending point of the element side, that should be borderedy2
- y coordinate of the ending point of the element side, that should be borderedborderRadius
- defines the radius of the element's cornersdefaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinatesborderWidthBefore
- defines width of the border that is before the current oneborderWidthAfter
- defines width of the border that is after the current one
-
draw
public void draw(PdfCanvas canvas, float x1, float y1, float x2, float y2, float horizontalRadius1, float verticalRadius1, float horizontalRadius2, float verticalRadius2, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter)
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the drawing direction. Borders are drawn in this order: top, right, bottom, left.Given points specify the line which lies on the border of the content area, therefore the border itself should be drawn to the left from the drawing direction.
borderWidthBefore
andborderWidthAfter
parameters are used to define the widths of the borders that are before and after the current border, e.g. for the bottom border,borderWidthBefore
specifies width of the right border andborderWidthAfter
- width of the left border. Those width are used to handle areas of border joins.horizontalRadius1
,verticalRadius1
,horizontalRadius2
andverticalRadius2
are used to draw rounded borders.- Parameters:
canvas
- PdfCanvas to be written tox1
- x coordinate of the beginning point of the element side, that should be borderedy1
- y coordinate of the beginning point of the element side, that should be borderedx2
- x coordinate of the ending point of the element side, that should be borderedy2
- y coordinate of the ending point of the element side, that should be borderedhorizontalRadius1
- defines the horizontal radius of the border's first cornerverticalRadius1
- defines the vertical radius of the border's first cornerhorizontalRadius2
- defines the horizontal radius of the border's second cornerverticalRadius2
- defines the vertical radius of the border's second cornerdefaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinatesborderWidthBefore
- defines width of the border that is before the current oneborderWidthAfter
- defines width of the border that is after the current one
-
drawCellBorder
public abstract void drawCellBorder(PdfCanvas canvas, float x1, float y1, float x2, float y2, Border.Side defaultSide)
Draws the border of a cell.- Parameters:
canvas
- PdfCanvas to be written tox1
- x coordinate of the beginning point of the element side, that should be borderedy1
- y coordinate of the beginning point of the element side, that should be borderedx2
- x coordinate of the ending point of the element side, that should be borderedy2
- y coordinate of the ending point of the element side, that should be bordereddefaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinates
-
getType
public abstract int getType()
Returns the type of theborder
- Returns:
- the type of border.
-
getOpacity
public float getOpacity()
Gets the opacity of theborder
- Returns:
- the border opacity; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
-
getWidth
public float getWidth()
Gets the width of theborder
- Returns:
- the width
-
setColor
public void setColor(Color color)
- Parameters:
color
- The color
-
setWidth
public void setWidth(float width)
Sets the width of theborder
- Parameters:
width
- The width
-
equals
public boolean equals(java.lang.Object anObject)
Indicates whether the border is equal to the given border. The border type, width and color are considered during the comparison.- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
getBorderSide
protected Border.Side getBorderSide(float x1, float y1, float x2, float y2, Border.Side defaultSide)
Returns theside
corresponded to the line between two points. Notice that we consider the rectangle traversal to be clockwise. In case side couldn't be detected we will fallback to default side- Parameters:
x1
- the abscissa of the left-bottom pointy1
- the ordinate of the left-bottom pointx2
- the abscissa of the right-top pointy2
- the ordinate of the right-top pointdefaultSide
- the default side of border- Returns:
- the corresponded
side
-
getIntersectionPoint
protected Point getIntersectionPoint(Point lineBeg, Point lineEnd, Point clipLineBeg, Point clipLineEnd)
Gets aPoint
in which two lines intersect.- Parameters:
lineBeg
- aPoint
which defines some point on the first linelineEnd
- aPoint
which defines another point on the first lineclipLineBeg
- aPoint
which defines some point on the second lineclipLineEnd
- aPoint
which defines another point on the second line- Returns:
- the intersection
Point
-
getDotsGap
protected float getDotsGap(double distance, float initialGap)
Adjusts the size of the gap between dots- Parameters:
distance
- theborder
lengthinitialGap
- the initial size of the gap- Returns:
- the adjusted size of the gap
-
drawDiscontinuousBorders
protected void drawDiscontinuousBorders(PdfCanvas canvas, Rectangle boundingRectangle, float[] horizontalRadii, float[] verticalRadii, Border.Side defaultSide, float borderWidthBefore, float borderWidthAfter)
Perform drawing operations to draw discontinuous borders. Used byDashedBorder
,DottedBorder
andRoundDotsBorder
.- Parameters:
canvas
- canvas to draw onboundingRectangle
- rectangle representing the bounding box of the drawing operationshorizontalRadii
- the horizontal radius of the border's two cornersverticalRadii
- the vertical radius of the border's two cornersdefaultSide
- theBorder.Side
, that we will fallback to, if it cannot be determined by border coordinatesborderWidthBefore
- defines width of the border that is before the current oneborderWidthAfter
- defines width of the border that is after the current one
-
getStartingPointsForBorderSide
protected float[] getStartingPointsForBorderSide(float x1, float y1, float x2, float y2, Border.Side defaultSide)
Calculate adjusted starting points for discontinuous borders, given two opposing points (A and B) that define the bounding rectangle- Parameters:
x1
- x-coordinate of point Ay1
- y-ordinate of point Ax2
- x-coordinate of point By2
- y-ordinate of point BdefaultSide
- default side of the border used to determine the side given by points A and B- Returns:
- float[] containing the adjusted starting points in the form {x1,y1,x2,y2}
-
-