Class BlockRenderer

All Implemented Interfaces:
IPropertyContainer, IRenderer
Direct Known Subclasses:
CellRenderer, DivRenderer, LineSeparatorRenderer, ListRenderer, ParagraphRenderer

public abstract class BlockRenderer extends AbstractRenderer
Represents a renderer for block elements.
  • Constructor Details

    • BlockRenderer

      protected BlockRenderer (IElement modelElement)
      Creates a BlockRenderer from its corresponding layout object.
      modelElement - the IElement which this object should manage
  • Method Details

    • layout

      public LayoutResult layout (LayoutContext layoutContext)
      This method simulates positioning of the renderer, including all of its children, and returns the LayoutResult, 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 uses TextLayoutResult as its result. This method can be called standalone to learn how much area the renderer subtree needs, or can be called before IRenderer.draw(DrawContext), to prepare the renderer to be flushed to the output stream.
      layoutContext - the description of layout area and any other additional information
      result of the layout process
    • draw

      public void draw (DrawContext drawContext)
      Description copied from class: AbstractRenderer
      Flushes the renderer subtree contents, i.e. draws itself on canvas, adds necessary objects to the PdfDocument etc.
      Specified by:
      draw in interface IRenderer
      draw in class AbstractRenderer
      drawContext - contains the PdfDocument to which the renderer subtree if flushed, the PdfCanvas on which the renderer subtree is drawn and other additional parameters needed to perform drawing
    • getOccupiedAreaBBox

      public Rectangle getOccupiedAreaBBox()
      Description copied from class: AbstractRenderer
      Gets the bounding box that contains all content written to the DrawContext by this IRenderer.
      getOccupiedAreaBBox in class AbstractRenderer
      the smallest Rectangle that surrounds the content
    • createSplitRenderer

      protected AbstractRenderer createSplitRenderer (int layoutResult)
      Creates a split renderer.
      layoutResult - the result of content layouting
      a new AbstractRenderer instance
    • createOverflowRenderer

      protected AbstractRenderer createOverflowRenderer (int layoutResult)
      Creates an overflow renderer.
      layoutResult - the result of content layouting
      a new AbstractRenderer instance
    • applyVerticalAlignment

      protected void applyVerticalAlignment()
      This method applies vertical alignment for the occupied area of the renderer and its children renderers.
    • applyRotationLayout

      protected void applyRotationLayout (Rectangle layoutBox)
      This method rotates content of the renderer and calculates correct occupied area for the rotated element.
      layoutBox - a Rectangle
    • createRotationTransformInsideOccupiedArea

      protected AffineTransform createRotationTransformInsideOccupiedArea()
      This method creates AffineTransform instance that could be used to rotate content inside the occupied area. Be aware that it should be used only after layout rendering is finished and correct occupied area for the rotated element is calculated.
      AffineTransform that rotates the content and places it inside occupied area.
    • beginRotationIfApplied

      protected void beginRotationIfApplied (PdfCanvas canvas)
      This method starts rotation for the renderer if rotation angle property is specified.
      canvas - the PdfCanvas to draw on
    • endRotationIfApplied

      protected void endRotationIfApplied (PdfCanvas canvas)
      This method ends rotation for the renderer if applied.
      canvas - the PdfCanvas to draw on
    • getMinMaxWidth

      public MinMaxWidth getMinMaxWidth()
      Calculates min and max width values for current renderer.
      getMinMaxWidth in class AbstractRenderer
      instance of MinMaxWidth