Package com.itextpdf.layout.renderer
Class CellRenderer
- java.lang.Object
-
- com.itextpdf.layout.renderer.AbstractRenderer
-
- com.itextpdf.layout.renderer.BlockRenderer
-
- com.itextpdf.layout.renderer.CellRenderer
-
- All Implemented Interfaces:
IPropertyContainer
,IRenderer
public class CellRenderer extends BlockRenderer
Represents a renderer for theCell
layout element.
-
-
Field Summary
-
Fields inherited from class com.itextpdf.layout.renderer.AbstractRenderer
BOTTOM_SIDE, childRenderers, EPS, flushed, INF, isLastRendererForModelElement, LEFT_SIDE, modelElement, occupiedArea, OVERLAP_EPSILON, parent, positionedRenderers, properties, RIGHT_SIDE, TOP_SIDE
-
-
Constructor Summary
Constructors Constructor Description CellRenderer(Cell modelElement)
Creates a CellRenderer from its corresponding layout object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Rectangle
applyBorderBox(Rectangle rect, Border[] borders, boolean reverse)
Applies the given border box (borders) on the given rectangleprotected Rectangle
applyMargins(Rectangle rect, UnitValue[] margins, boolean reverse)
Applies given margins on the given rectangleprotected Rectangle
applySpacings(Rectangle rect, boolean reverse)
Applies spacings on the given rectangle.protected Rectangle
applySpacings(Rectangle rect, float[] spacings, boolean reverse)
Applies given spacings on the given rectangle.protected AbstractRenderer
createOverflowRenderer(int layoutResult)
Creates an overflow renderer.protected AbstractRenderer
createSplitRenderer(int layoutResult)
Creates a split renderer.void
drawBackground(DrawContext drawContext)
Draws a background layer if it is defined by a keyProperty.BACKGROUND
in either the layout element or thisIRenderer
itself.void
drawBorder(DrawContext drawContext)
Performs the drawing operation for the border of this renderer, if defined by any of theProperty.BORDER
values in either the layout element or thisIRenderer
itself.IPropertyContainer
getModelElement()
Gets the model element associated with this renderer.IRenderer
getNextRenderer()
Gets a new instance of this class to be used as a next renderer, after this renderer is used, ifBlockRenderer.layout(LayoutContext)
is called more than once.protected java.lang.Float
retrieveWidth(float parentBoxWidth)
Retrieves element's fixed content box width, if it's set.-
Methods inherited from class com.itextpdf.layout.renderer.BlockRenderer
applyMaxHeight, applyMinHeight, applyRotationLayout, applyVerticalAlignment, applyWidth, beginRotationIfApplied, correctFixedLayout, createRotationTransformInsideOccupiedArea, createSplitAndOverflowRenderers, decreaseLayoutBoxAfterChildPlacement, draw, endRotationIfApplied, fixOccupiedAreaIfOverflowedX, fixOccupiedAreaIfOverflowedY, getMinMaxWidth, getOccupiedAreaBBox, getResolvedFont, handleForcedPlacement, layout, processNotFullChildResult, recalculateLayoutBoxBeforeChildLayout, recalculateOccupiedAreaAfterChildLayout, startChildMarginsHandling, stopLayoutingChildrenIfChildResultNotFull
-
Methods inherited from class com.itextpdf.layout.renderer.AbstractRenderer
addAllChildRenderers, addAllChildRenderers, addAllProperties, addChild, addChildRenderer, alignChildHorizontally, allowLastYLineRecursiveExtraction, applyAbsolutePosition, applyAbsolutePositionIfNeeded, applyAction, applyBorderBox, applyDestination, applyDestinationsAndAnnotation, applyLinkAnnotation, applyMargins, applyMarginsBordersPaddings, applyPaddings, applyPaddings, applyRelativePositioningTranslation, beginElementOpacityApplying, beginTransformationIfApplied, calculateAbsolutePdfBBox, calculateAdditionalWidth, calculateBBox, calculatePaddingBorderHeight, calculatePaddingBorderWidth, calculateShiftToPositionBBoxOfPointsAt, clipBackgroundArea, clipBackgroundArea, clipBorderArea, createFontCharacteristics, createXObject, deleteOwnProperty, deleteProperty, drawChildren, drawPositionedChildren, endElementOpacityApplying, endTransformationIfApplied, getAspectRatio, getBackgroundArea, getBorderAreaBBox, getBorderRadii, getBorders, getBorders, getChildRenderers, getDefaultProperty, getFirstYLineRecursively, getInnerAreaBBox, getLastYLineRecursively, getMargins, getOccupiedArea, getOwnProperties, getOwnProperty, getPaddings, getParent, getPdfDocument, getProperty, getProperty, getPropertyAsBoolean, getPropertyAsColor, getPropertyAsFloat, getPropertyAsFloat, getPropertyAsFloat, getPropertyAsFont, getPropertyAsInteger, getPropertyAsTransparentColor, getPropertyAsUnitValue, getPropertyAsUnitValue, getRootRenderer, hasAbsoluteUnitValue, hasAspectRatio, hasOwnOrModelProperty, hasOwnProperty, hasProperty, hasRelativeUnitValue, initElementAreas, isAbsolutePosition, isBorderBoxSizing, isFirstOnRootArea, isFirstOnRootArea, isFixedLayout, isFlushed, isKeepTogether, isKeepTogether, isNotFittingHeight, isNotFittingLayoutArea, isNotFittingWidth, isOverflowFit, isOverflowProperty, isOverflowProperty, isOverflowProperty, isPositioned, isRelativePosition, isStaticLayout, logWarningIfGetNextRendererNotOverridden, move, noAbsolutePositionInfo, preparePositionedRendererAndAreaForLayout, processWaitingDrawing, rectangleToPointsList, removeAllChildRenderers, removeChildRenderer, replaceOwnProperty, resolveFirstPdfFont, resolveFirstPdfFont, retrieveHeight, retrieveMaxHeight, retrieveMaxWidth, retrieveMinHeight, retrieveMinWidth, retrieveUnitValue, retrieveUnitValue, returnBackOwnProperty, setBorders, setChildRenderer, setChildRenderers, setMinMaxWidthBasedOnFixedWidth, setParent, setProperty, setThisAsParent, shrinkOccupiedAreaForAbsolutePosition, toString, transformPoints, updateHeight, updateHeightsOnSplit, updateHeightsOnSplit, updateMaxHeight, updateMinHeight, updateWidth
-
-
-
-
Method Detail
-
getModelElement
public IPropertyContainer getModelElement()
Gets the model element associated with this renderer.- Specified by:
getModelElement
in interfaceIRenderer
- Overrides:
getModelElement
in classAbstractRenderer
- Returns:
- the model element, as a
container of properties
-
retrieveWidth
protected java.lang.Float retrieveWidth(float parentBoxWidth)
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:
AbstractRenderer.hasAbsoluteUnitValue(int)
-
createSplitRenderer
protected AbstractRenderer createSplitRenderer(int layoutResult)
Creates a split renderer.- Overrides:
createSplitRenderer
in classBlockRenderer
- Parameters:
layoutResult
- the result of content layouting- Returns:
- a new
AbstractRenderer
instance
-
createOverflowRenderer
protected AbstractRenderer createOverflowRenderer(int layoutResult)
Creates an overflow renderer.- Overrides:
createOverflowRenderer
in classBlockRenderer
- Parameters:
layoutResult
- the result of content layouting- Returns:
- a new
AbstractRenderer
instance
-
drawBackground
public void drawBackground(DrawContext drawContext)
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.
-
drawBorder
public void drawBorder(DrawContext drawContext)
Performs the drawing operation for the border of this renderer, if defined by any of theProperty.BORDER
values in either the layout element or thisIRenderer
itself.- Overrides:
drawBorder
in classAbstractRenderer
- Parameters:
drawContext
- the context (canvas, document, etc) of this drawing operation.
-
applyBorderBox
protected Rectangle applyBorderBox(Rectangle rect, Border[] borders, boolean reverse)
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 rectanglereverse
- 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
-
applyMargins
protected Rectangle applyMargins(Rectangle rect, UnitValue[] margins, boolean reverse)
Description copied from class:AbstractRenderer
Applies given margins on the given rectangle- Overrides:
applyMargins
in classAbstractRenderer
- Parameters:
rect
- a rectangle margins will be applied on.margins
- the margins to be applied on the given rectanglereverse
- indicates whether margins will be applied inside (in case of false) or outside (in case of true) the rectangle.- Returns:
- a
border box
of the renderer
-
applySpacings
protected Rectangle applySpacings(Rectangle rect, boolean reverse)
Applies spacings on the given rectangle.- Parameters:
rect
- a rectangle spacings will be applied onreverse
- indicates whether spacings will be applied inside (in case of false) or outside (in case of true) the rectangle.- Returns:
- a
border box
of the renderer
-
applySpacings
protected Rectangle applySpacings(Rectangle rect, float[] spacings, boolean reverse)
Applies given spacings on the given rectangle.- Parameters:
rect
- a rectangle spacings will be applied onspacings
- the spacings to be applied on the given rectanglereverse
- indicates whether spacings will be applied inside (in case of false) or outside (in case of true) the rectangle.- Returns:
- a
border box
of the renderer
-
getNextRenderer
public IRenderer getNextRenderer()
Gets a new instance of this class to be used as a next renderer, after this renderer is used, ifBlockRenderer.layout(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
CellRenderer
, 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
-
-