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
FieldsModifier and TypeFieldDescriptionprotected DivRendererprotected TableRendererprotected TableRendererprotected booleanTrue for newly created renderer.protected Table.RowRangeprotected 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
ConstructorsConstructorDescriptionTableRenderer(Table modelElement) Creates a TableRenderer from aTable.TableRenderer(Table modelElement, Table.RowRange rowRange) Creates a TableRenderer from aTablewhich will partially render the table. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a child to the current rendererprotected booleanprotected RectangleapplyBorderBox(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 RectangleapplyPaddings(Rectangle rect, UnitValue[] paddings, boolean reverse) Applies given paddings to the given rectangle.protected TableRenderercreateOverflowRenderer(Table.RowRange rowRange) protected TableRenderercreateSplitRenderer(Table.RowRange rowRange) voiddraw(DrawContext drawContext) Flushes the renderer subtree contents, i.e.voiddrawBackground(DrawContext drawContext) Draws a background layer if it is defined by a keyProperty.BACKGROUNDin either the layout element or thisIRendereritself.protected voiddrawBackgrounds(DrawContext drawContext) voiddrawBorder(DrawContext drawContext) Performs the drawing operation for the border of this renderer, if defined by theProperty.BORDER_TOP,Property.BORDER_RIGHT,Property.BORDER_BOTTOMandProperty.BORDER_LEFTvalues in either the layout element or thisIRendereritself.protected voiddrawBorders(DrawContext drawContext) protected voiddrawCaption(DrawContext drawContext) voiddrawChildren(DrawContext drawContext) Performs the drawing operation for allchildrenof this renderer.protected voidextendLastRow(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.voidmove(float dxRight, float dyUp) Moves the renderer subtree by the specified offset.protected FloatretrieveWidth(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, getMinMaxWidth, 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, retrieveResolvedDeclaredHeight, retrieveUnitValue, retrieveUnitValue, setBorders, setMinMaxWidthBasedOnFixedWidth, setParent, setProperty, toString, transformPoints, updateHeight, updateHeightsOnSplit, updateMaxHeight, updateMinHeight, updateWidth
-
Field Details
-
rows
-
rowRange
-
headerRenderer
-
captionRenderer
-
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 aTablewhich 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:
-
addChildin interfaceIRenderer - Overrides:
-
addChildin classAbstractRenderer - Parameters:
-
renderer- a child to be added
-
applyBorderBox
Description copied from class:AbstractRendererApplies the given border box (borders) on the given rectangle- Overrides:
-
applyBorderBoxin classAbstractRenderer - Parameters:
-
rect- a rectangle paddings will be applied on. -
borders- thebordersto 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 boxof the renderer
-
applyPaddings
Description copied from class:AbstractRendererApplies given paddings to the given rectangle.- Overrides:
-
applyPaddingsin 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 boxof the renderer
-
applyPaddings
Description copied from class:AbstractRendererApplies paddings of the renderer on the given rectangle- Overrides:
-
applyPaddingsin 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 boxof 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.LayoutResultcan be extended to return custom layout results for custom elements, e.g.TextRendererusesTextLayoutResultas 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 thePdfDocumentetc.- Specified by:
-
drawin interfaceIRenderer - Overrides:
-
drawin classAbstractRenderer - Parameters:
-
drawContext- contains thePdfDocumentto which the renderer subtree if flushed, thePdfCanvason which the renderer subtree is drawn and other additional parameters needed to perform drawing
-
drawChildren
Performs the drawing operation for allchildrenof this renderer.- Overrides:
-
drawChildrenin classAbstractRenderer - Parameters:
-
drawContext- the context (canvas, document, etc) of this drawing operation.
-
drawBackgrounds
-
drawCaption
-
drawBackground
Description copied from class:AbstractRendererDraws a background layer if it is defined by a keyProperty.BACKGROUNDin either the layout element or thisIRendereritself.- Overrides:
-
drawBackgroundin 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:
-
movein interfaceIRenderer - Overrides:
-
movein 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:AbstractRendererRetrieves element's fixed content box width, if it's set. Takes into accountProperty.BOX_SIZING,Property.MIN_WIDTH, andProperty.MAX_WIDTHproperties.- Overrides:
-
retrieveWidthin 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:AbstractRendererCalculates min and max width values for current renderer.- Overrides:
-
getMinMaxWidthin classAbstractRenderer - Returns:
-
instance of
MinMaxWidth
-
allowLastYLineRecursiveExtraction
protected boolean allowLastYLineRecursiveExtraction()- Overrides:
-
allowLastYLineRecursiveExtractionin classAbstractRenderer
-
drawBorder
Description copied from class:AbstractRendererPerforms the drawing operation for the border of this renderer, if defined by theProperty.BORDER_TOP,Property.BORDER_RIGHT,Property.BORDER_BOTTOMandProperty.BORDER_LEFTvalues in either the layout element or thisIRendereritself.- Overrides:
-
drawBorderin classAbstractRenderer - Parameters:
-
drawContext- the context (canvas, document, etc.) of this drawing operation
-
drawBorders
-
extendLastRow
-