Package com.itextpdf.layout.renderer
Class TableRenderer
java.lang.Object
com.itextpdf.layout.renderer.AbstractRenderer
com.itextpdf.layout.renderer.TableRenderer
- All Implemented Interfaces:
-
IPropertyContainer
,IRenderer
This class represents the
renderer
object for a Table
object. It will delegate its drawing operations on to the CellRenderer
instances associated with the table cells
.
-
Field Summary
Modifier and TypeFieldDescriptionprotected DivRenderer
protected TableRenderer
protected TableRenderer
protected boolean
True for newly created renderer.protected Table.RowRange
protected List<CellRenderer[]>
Fields inherited from class com.itextpdf.layout.renderer.AbstractRenderer
childRenderers, EPS, flushed, INF, isLastRendererForModelElement, modelElement, occupiedArea, OVERLAP_EPSILON, parent, positionedRenderers, properties
-
Constructor Summary
ConstructorDescriptionTableRenderer
(Table modelElement) Creates a TableRenderer from aTable
.TableRenderer
(Table modelElement, Table.RowRange rowRange) Creates a TableRenderer from aTable
which will partially render the table. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a child to the current rendererprotected boolean
protected Rectangle
applyBorderBox
(Rectangle rect, Border[] borders, boolean reverse) Applies the given border box (borders) on the given rectangleapplyPaddings
(Rectangle rect, boolean reverse) Applies paddings of the renderer on the given rectangleprotected Rectangle
applyPaddings
(Rectangle rect, UnitValue[] paddings, boolean reverse) Applies given paddings to the given rectangle.protected TableRenderer
createOverflowRenderer
(Table.RowRange rowRange) protected TableRenderer
createSplitRenderer
(Table.RowRange rowRange) void
draw
(DrawContext drawContext) Flushes the renderer subtree contents, i.e.void
drawBackground
(DrawContext drawContext) Draws a background layer if it is defined by a keyProperty.BACKGROUND
in either the layout element or thisIRenderer
itself.protected void
drawBackgrounds
(DrawContext drawContext) void
drawBorder
(DrawContext drawContext) Performs the drawing operation for the border of this renderer, if defined by theProperty.BORDER_TOP
,Property.BORDER_RIGHT
,Property.BORDER_BOTTOM
andProperty.BORDER_LEFT
values in either the layout element or thisIRenderer
itself.protected void
drawBorders
(DrawContext drawContext) protected void
drawCaption
(DrawContext drawContext) void
drawChildren
(DrawContext drawContext) Performs the drawing operation for allchildren
of this renderer.protected void
extendLastRow
(CellRenderer[] lastRow, Rectangle freeBox) Calculates min and max width values for current renderer.Gets a new instance of this class to be used as a next renderer, after this renderer is used, iflayout(LayoutContext)
is called more than once.layout
(LayoutContext layoutContext) This method simulates positioning of the renderer, including all of its children, and returns theLayoutResult
, representing the layout result, including occupied area, status, i.e.void
move
(float dxRight, float dyUp) Moves the renderer subtree by the specified offset.protected Float
retrieveWidth
(float parentBoxWidth) Retrieves element's fixed content box width, if it's set.protected TableRenderer[]
split
(int row) protected TableRenderer[]
split
(int row, boolean hasContent) protected TableRenderer[]
split
(int row, boolean hasContent, boolean cellWithBigRowspanAdded) Methods inherited from class com.itextpdf.layout.renderer.AbstractRenderer
addAllProperties, alignChildHorizontally, applyAbsolutePosition, applyAction, applyBorderBox, applyDestination, applyDestinationsAndAnnotation, applyLinkAnnotation, applyMargins, applyMargins, applyRelativePositioningTranslation, beginElementOpacityApplying, beginTransformationIfApplied, calculateAbsolutePdfBBox, calculateBBox, calculateShiftToPositionBBoxOfPointsAt, clipBackgroundArea, clipBackgroundArea, clipBorderArea, createXObject, deleteOwnProperty, deleteProperty, endElementOpacityApplying, endTransformationIfApplied, getBackgroundArea, getBorderAreaBBox, getBorderRadii, getBorders, getChildRenderers, getDefaultProperty, getFirstYLineRecursively, getInnerAreaBBox, getLastYLineRecursively, getMargins, getModelElement, getOccupiedArea, getOccupiedAreaBBox, getOwnProperties, getOwnProperty, getPaddings, getParent, getProperty, getProperty, getPropertyAsBoolean, getPropertyAsColor, getPropertyAsFloat, getPropertyAsFloat, getPropertyAsFont, getPropertyAsInteger, getPropertyAsTransparentColor, getPropertyAsUnitValue, hasAbsoluteUnitValue, hasOwnOrModelProperty, hasOwnProperty, hasProperty, hasRelativeUnitValue, initElementAreas, isAbsolutePosition, isBorderBoxSizing, isFirstOnRootArea, isFixedLayout, isFlushed, isKeepTogether, isNotFittingHeight, isNotFittingLayoutArea, isNotFittingWidth, isOverflowFit, isOverflowProperty, isOverflowProperty, isOverflowProperty, isPositioned, isRelativePosition, isStaticLayout, rectangleToPointsList, retrieveHeight, retrieveMaxHeight, retrieveMaxWidth, retrieveMinHeight, retrieveMinWidth, retrieveUnitValue, retrieveUnitValue, setBorders, setMinMaxWidthBasedOnFixedWidth, setParent, setProperty, toString, transformPoints, updateHeight, updateHeightsOnSplit, updateMaxHeight, updateMinHeight, updateWidth
-
Field Details
-
rows
-
rowRange
-
headerRenderer
-
isOriginalNonSplitRenderer
protected boolean isOriginalNonSplitRendererTrue for newly created renderer. For split renderers this is set to false. Used for tricky layout.
-
-
Constructor Details
-
TableRenderer
Creates a TableRenderer from aTable
which will partially render the table.- Parameters:
-
modelElement
- the table to be rendered by this renderer -
rowRange
- the table rows to be rendered
-
TableRenderer
Creates a TableRenderer from aTable
.- Parameters:
-
modelElement
- the table to be rendered by this renderer
-
-
Method Details
-
addChild
Adds a child to the current renderer- Specified by:
-
addChild
in interfaceIRenderer
- Overrides:
-
addChild
in classAbstractRenderer
- Parameters:
-
renderer
- a child to be added
-
applyBorderBox
Description copied from class:AbstractRenderer
Applies the given border box (borders) on the given rectangle- Overrides:
-
applyBorderBox
in classAbstractRenderer
- Parameters:
-
rect
- a rectangle paddings will be applied on. -
borders
- theborders
to be applied on the given rectangle -
reverse
- indicates whether the border box will be applied inside (in case of false) or outside (in case of false) the rectangle. - Returns:
-
a
border box
of the renderer
-
applyPaddings
Description copied from class:AbstractRenderer
Applies given paddings to the given rectangle.- Overrides:
-
applyPaddings
in classAbstractRenderer
- Parameters:
-
rect
- a rectangle paddings will be applied on. -
paddings
- the paddings to be applied on the given rectangle -
reverse
- indicates whether paddings will be applied inside (in case of false) or outside (in case of true) the rectangle. - Returns:
-
a
border box
of the renderer
-
applyPaddings
Description copied from class:AbstractRenderer
Applies paddings of the renderer on the given rectangle- Overrides:
-
applyPaddings
in classAbstractRenderer
- Parameters:
-
rect
- a rectangle paddings will be applied on. -
reverse
- indicates whether paddings will be applied inside (in case of false) or outside (in case of true) the rectangle. - Returns:
-
a
border box
of the renderer - See Also:
-
layout
This method simulates positioning of the renderer, including all of its children, and returns theLayoutResult
, representing the layout result, including occupied area, status, i.e. if there was enough place to fit the renderer subtree, etc.LayoutResult
can be extended to return custom layout results for custom elements, e.g.TextRenderer
usesTextLayoutResult
as its result. This method can be called standalone to learn how much area the renderer subtree needs, or can be called beforeIRenderer.draw(DrawContext)
, to prepare the renderer to be flushed to the output stream.- Parameters:
-
layoutContext
- the description of layout area and any other additional information - Returns:
- result of the layout process
-
draw
Flushes the renderer subtree contents, i.e. draws itself on canvas, adds necessary objects to thePdfDocument
etc.- Specified by:
-
draw
in interfaceIRenderer
- Overrides:
-
draw
in classAbstractRenderer
- Parameters:
-
drawContext
- contains thePdfDocument
to which the renderer subtree if flushed, thePdfCanvas
on which the renderer subtree is drawn and other additional parameters needed to perform drawing
-
drawChildren
Performs the drawing operation for allchildren
of this renderer.- Overrides:
-
drawChildren
in classAbstractRenderer
- Parameters:
-
drawContext
- the context (canvas, document, etc) of this drawing operation.
-
drawBackgrounds
-
drawCaption
-
drawBackground
Description copied from class:AbstractRenderer
Draws a background layer if it is defined by a keyProperty.BACKGROUND
in either the layout element or thisIRenderer
itself.- Overrides:
-
drawBackground
in classAbstractRenderer
- Parameters:
-
drawContext
- the context (canvas, document, etc) of this drawing operation.
-
getNextRenderer
Gets a new instance of this class to be used as a next renderer, after this renderer is used, iflayout(LayoutContext)
is called more than once.If a renderer overflows to the next area, iText uses this method to create a renderer for the overflow part. So if one wants to extend
TableRenderer
, one should override this method: otherwise the default method will be used and thus the default rather than the custom renderer will be created.- Returns:
- new renderer instance
-
move
public void move(float dxRight, float dyUp) Moves the renderer subtree by the specified offset. This method affects occupied area of the renderer.- Specified by:
-
move
in interfaceIRenderer
- Overrides:
-
move
in classAbstractRenderer
- Parameters:
-
dxRight
- the x-axis offset in points. Positive value will move the renderer subtree to the right. -
dyUp
- the y-axis offset in points. Positive value will move the renderer subtree to the top.
-
split
-
split
-
split
-
createSplitRenderer
-
createOverflowRenderer
-
retrieveWidth
Description copied from class:AbstractRenderer
Retrieves element's fixed content box width, if it's set. Takes into accountProperty.BOX_SIZING
,Property.MIN_WIDTH
, andProperty.MAX_WIDTH
properties.- Overrides:
-
retrieveWidth
in classAbstractRenderer
- Parameters:
-
parentBoxWidth
- width of the parent element content box. If element has relative width, it will be calculated relatively to this parameter. - Returns:
- element's fixed content box width or null if it's not set.
- See Also:
-
getMinMaxWidth
Description copied from class:AbstractRenderer
Calculates min and max width values for current renderer.- Overrides:
-
getMinMaxWidth
in classAbstractRenderer
- Returns:
-
instance of
MinMaxWidth
-
allowLastYLineRecursiveExtraction
protected boolean allowLastYLineRecursiveExtraction()- Overrides:
-
allowLastYLineRecursiveExtraction
in classAbstractRenderer
-
drawBorder
Description copied from class:AbstractRenderer
Performs the drawing operation for the border of this renderer, if defined by theProperty.BORDER_TOP
,Property.BORDER_RIGHT
,Property.BORDER_BOTTOM
andProperty.BORDER_LEFT
values in either the layout element or thisIRenderer
itself.- Overrides:
-
drawBorder
in classAbstractRenderer
- Parameters:
-
drawContext
- the context (canvas, document, etc.) of this drawing operation
-
drawBorders
-
extendLastRow
-