Class ParagraphRenderer

    • Constructor Detail

      • ParagraphRenderer

        public ParagraphRenderer​(Paragraph modelElement)
        Creates a ParagraphRenderer from its corresponding layout object.
        Parameters:
        modelElement - the Paragraph which this object should manage
    • Method Detail

      • 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.
        Specified by:
        layout in interface IRenderer
        Overrides:
        layout in class BlockRenderer
        Parameters:
        layoutContext - the description of layout area and any other additional information
        Returns:
        result of the layout process
      • getNextRenderer

        public IRenderer getNextRenderer()
        Gets a new instance of this class to be used as a next renderer, after this renderer is used, if 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 ParagraphRenderer, 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
      • getDefaultProperty

        public <T1> T1 getDefaultProperty​(int property)
        Gets the default property from this entity.
        Specified by:
        getDefaultProperty in interface IPropertyContainer
        Overrides:
        getDefaultProperty in class AbstractRenderer
        Type Parameters:
        T1 - the return type associated with the property
        Parameters:
        property - the property to be retrieved
        Returns:
        the default property value. If the default property is not defined, null will be returned
      • toString

        public java.lang.String toString()
        Returns a string representation of the renderer.
        Overrides:
        toString in class AbstractRenderer
        Returns:
        a String
        See Also:
        Object.toString()
      • drawChildren

        public void drawChildren​(DrawContext drawContext)
        Performs the drawing operation for all children of this renderer.
        Overrides:
        drawChildren in class AbstractRenderer
        Parameters:
        drawContext - the context (canvas, document, etc) of this drawing operation.
      • 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 interface IRenderer
        Overrides:
        move in class AbstractRenderer
        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.
      • getLines

        public java.util.List<LineRenderer> getLines()
        Gets the lines which are the result of the layout(LayoutContext).
        Returns:
        paragraph lines, or null if layout hasn't been called yet
      • getFirstYLineRecursively

        protected java.lang.Float getFirstYLineRecursively()
        Description copied from class: AbstractRenderer
        Gets the first yLine of the nested children recursively. E.g. for a list, this will be the yLine of the first item (if the first item is indeed a paragraph). NOTE: this method will no go further than the first child.
        Overrides:
        getFirstYLineRecursively in class AbstractRenderer
        Returns:
        the first yline of the nested children, null if there is no text found
      • fixOverflowRenderer

        private void fixOverflowRenderer​(ParagraphRenderer overflowRenderer)
      • alignStaticKids

        private void alignStaticKids​(LineRenderer renderer,
                                     float dxRight)
      • updateParentLines

        private static void updateParentLines​(ParagraphRenderer re)