Package com.itextpdf.layout.renderer
Class RootRenderer
- java.lang.Object
-
- com.itextpdf.layout.renderer.AbstractRenderer
-
- com.itextpdf.layout.renderer.RootRenderer
-
- All Implemented Interfaces:
IPropertyContainer,IRenderer
- Direct Known Subclasses:
CanvasRenderer,DocumentRenderer
public abstract class RootRenderer extends AbstractRenderer
-
-
Field Summary
Fields Modifier and Type Field Description protected RootLayoutAreacurrentAreaprivate booleanfloatOverflowedCompletely(package private) java.util.List<Rectangle>floatRendererAreasprotected booleanimmediateFlushprivate LayoutAreainitialCurrentAreaprivate IRendererkeepWithNextHangingRendererprivate LayoutResultkeepWithNextHangingRendererLayoutResultprivate MarginsCollapseHandlermarginsCollapseHandlerprotected java.util.List<IRenderer>waitingDrawingElementsprivate java.util.List<IRenderer>waitingNextPageRenderers-
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 RootRenderer()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private voidaddAllWaitingNextPageRenderers()voidaddChild(IRenderer renderer)Adds a child to the current rendererprivate voidaddWaitingNextPageRenderers()voidclose()This method correctly closes theRootRendererinstance.voidflush()Draws (flushes) the content.protected abstract voidflushSingleRenderer(IRenderer resultRenderer)protected voidflushWaitingDrawingElements()(package private) voidflushWaitingDrawingElements(boolean force)LayoutAreagetCurrentArea()LayoutResultlayout(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.(package private) voidlinkRenderToDocument(IRenderer renderer, PdfDocument pdfDocument)private voidprocessRenderer(IRenderer renderer, java.util.List<IRenderer> resultRenderers)private voidprocessWaitingKeepWithNextElement(IRenderer renderer)protected voidshrinkCurrentAreaAndProcessRenderer(IRenderer renderer, java.util.List<IRenderer> resultRenderers, LayoutResult result)private booleantryDisableKeepTogether(LayoutResult result, boolean rendererIsFloat, RootRendererAreaStateHandler rootRendererStateHandler)private voidupdateCurrentAndInitialArea(LayoutResult overflowResult)protected abstract LayoutAreaupdateCurrentArea(LayoutResult overflowResult)private booleanupdateForcedPlacement(IRenderer currentRenderer, IRenderer overflowRenderer)-
Methods inherited from class com.itextpdf.layout.renderer.AbstractRenderer
addAllChildRenderers, addAllChildRenderers, addAllProperties, addChildRenderer, alignChildHorizontally, allowLastYLineRecursiveExtraction, applyAbsolutePosition, applyAbsolutePositionIfNeeded, applyAction, applyBorderBox, applyBorderBox, applyDestination, applyDestinationsAndAnnotation, applyLinkAnnotation, applyMargins, applyMargins, applyMarginsBordersPaddings, applyPaddings, applyPaddings, applyRelativePositioningTranslation, beginElementOpacityApplying, beginTransformationIfApplied, calculateAbsolutePdfBBox, calculateAdditionalWidth, calculateBBox, calculatePaddingBorderHeight, calculatePaddingBorderWidth, calculateShiftToPositionBBoxOfPointsAt, clipBackgroundArea, clipBackgroundArea, clipBorderArea, createFontCharacteristics, createXObject, deleteOwnProperty, deleteProperty, draw, drawBackground, drawBorder, drawChildren, drawPositionedChildren, endElementOpacityApplying, endTransformationIfApplied, getAspectRatio, getBackgroundArea, getBorderAreaBBox, getBorderRadii, getBorders, getBorders, getChildRenderers, getDefaultProperty, getFirstYLineRecursively, getInnerAreaBBox, getLastYLineRecursively, getMargins, getMinMaxWidth, getMinMaxWidth, getModelElement, getOccupiedArea, getOccupiedAreaBBox, 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, retrieveResolvedDeclaredHeight, retrieveUnitValue, retrieveUnitValue, retrieveWidth, returnBackOwnProperty, setBorders, setChildRenderer, setChildRenderers, setMinMaxWidthBasedOnFixedWidth, setParent, setProperty, setThisAsParent, shrinkOccupiedAreaForAbsolutePosition, toString, transformPoints, updateHeight, updateHeightsOnSplit, updateHeightsOnSplit, updateMaxHeight, updateMinHeight, updateWidth
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.itextpdf.layout.renderer.IRenderer
getNextRenderer
-
-
-
-
Field Detail
-
immediateFlush
protected boolean immediateFlush
-
currentArea
protected RootLayoutArea currentArea
-
waitingDrawingElements
protected java.util.List<IRenderer> waitingDrawingElements
-
floatRendererAreas
java.util.List<Rectangle> floatRendererAreas
-
keepWithNextHangingRenderer
private IRenderer keepWithNextHangingRenderer
-
keepWithNextHangingRendererLayoutResult
private LayoutResult keepWithNextHangingRendererLayoutResult
-
marginsCollapseHandler
private MarginsCollapseHandler marginsCollapseHandler
-
initialCurrentArea
private LayoutArea initialCurrentArea
-
waitingNextPageRenderers
private java.util.List<IRenderer> waitingNextPageRenderers
-
floatOverflowedCompletely
private boolean floatOverflowedCompletely
-
-
Method Detail
-
addChild
public void addChild(IRenderer renderer)
Description copied from class:AbstractRendererAdds a child to the current renderer- Specified by:
addChildin interfaceIRenderer- Overrides:
addChildin classAbstractRenderer- Parameters:
renderer- a child to be added
-
flush
public void flush()
Draws (flushes) the content.
-
close
public void close()
This method correctly closes theRootRendererinstance. There might be hanging elements, like in case ofProperty.KEEP_WITH_NEXTis set to true and when no consequent element has been added. This method addresses such situations.
-
layout
public LayoutResult 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. 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
-
getCurrentArea
public LayoutArea getCurrentArea()
-
flushSingleRenderer
protected abstract void flushSingleRenderer(IRenderer resultRenderer)
-
updateCurrentArea
protected abstract LayoutArea updateCurrentArea(LayoutResult overflowResult)
-
shrinkCurrentAreaAndProcessRenderer
protected void shrinkCurrentAreaAndProcessRenderer(IRenderer renderer, java.util.List<IRenderer> resultRenderers, LayoutResult result)
-
flushWaitingDrawingElements
protected void flushWaitingDrawingElements()
-
flushWaitingDrawingElements
void flushWaitingDrawingElements(boolean force)
-
linkRenderToDocument
final void linkRenderToDocument(IRenderer renderer, PdfDocument pdfDocument)
-
processRenderer
private void processRenderer(IRenderer renderer, java.util.List<IRenderer> resultRenderers)
-
processWaitingKeepWithNextElement
private void processWaitingKeepWithNextElement(IRenderer renderer)
-
updateCurrentAndInitialArea
private void updateCurrentAndInitialArea(LayoutResult overflowResult)
-
addAllWaitingNextPageRenderers
private void addAllWaitingNextPageRenderers()
-
addWaitingNextPageRenderers
private void addWaitingNextPageRenderers()
-
updateForcedPlacement
private boolean updateForcedPlacement(IRenderer currentRenderer, IRenderer overflowRenderer)
-
tryDisableKeepTogether
private boolean tryDisableKeepTogether(LayoutResult result, boolean rendererIsFloat, RootRendererAreaStateHandler rootRendererStateHandler)
-
-