Class LineBox

java.lang.Object
com.openhtmltopdf.render.Box
com.openhtmltopdf.render.LineBox
All Implemented Interfaces:
InlinePaintable, Styleable, DisplayListItem

public class LineBox extends Box implements InlinePaintable
A line box contains a single line of text (or other inline content). It is created during layout. It also tracks floated and absolute content added while laying out the line.
  • Field Details

    • JUSTIFY_NON_SPACE_SHARE

      private static final float JUSTIFY_NON_SPACE_SHARE
      See Also:
    • JUSTIFY_SPACE_SHARE

      private static final float JUSTIFY_SPACE_SHARE
      See Also:
    • _containsContent

      private boolean _containsContent
    • _containsBlockLevelContent

      private boolean _containsBlockLevelContent
    • _isEndsOnNL

      private boolean _isEndsOnNL
    • _floatDistances

      private FloatDistances _floatDistances
    • _textDecorations

      private List<TextDecoration> _textDecorations
    • _paintingTop

      private int _paintingTop
    • _paintingHeight

      private int _paintingHeight
    • _nonFlowContent

      private List<Box> _nonFlowContent
    • _markerData

      private MarkerData _markerData
    • _containsDynamicFunction

      private boolean _containsDynamicFunction
    • _contentStart

      private int _contentStart
    • _baseline

      private int _baseline
    • _justificationInfo

      private JustificationInfo _justificationInfo
    • direction

      private byte direction
    • referencedFootnoteBodies

      private List<BlockBox> referencedFootnoteBodies
  • Constructor Details

    • LineBox

      public LineBox()
  • Method Details

    • dump

      public String dump(LayoutContext c, String indent, int which)
      Specified by:
      dump in class Box
    • toString

      public String toString()
      Overrides:
      toString in class Box
    • getMarginEdge

      public Rectangle getMarginEdge(CssContext cssCtx, int tx, int ty)
      Overrides:
      getMarginEdge in class Box
    • paintInline

      public void paintInline(RenderingContext c)
      Specified by:
      paintInline in interface InlinePaintable
    • lookForDynamicFunctions

      private void lookForDynamicFunctions(RenderingContext c)
    • isFirstLine

      public boolean isFirstLine()
    • prunePendingInlineBoxes

      public void prunePendingInlineBoxes(LayoutContext c)
    • isContainsContent

      public boolean isContainsContent()
      Whether this line contains any actual text content.
    • setContainsContent

      public void setContainsContent(boolean containsContent)
    • align

      public void align(boolean dynamic, CssContext c)
    • justify

      public void justify(CssContext c)
    • adjustChildren

      private void adjustChildren(JustificationInfo info)
    • adjustChildrenRTL

      private void adjustChildrenRTL(JustificationInfo info)
    • isLastLineWithContent

      private boolean isLastLineWithContent()
    • countJustifiableChars

      private CharCounts countJustifiableChars()
    • getFloatDistances

      public FloatDistances getFloatDistances()
    • setFloatDistances

      public void setFloatDistances(FloatDistances floatDistances)
    • isContainsBlockLevelContent

      public boolean isContainsBlockLevelContent()
    • setContainsBlockLevelContent

      public void setContainsBlockLevelContent(boolean containsBlockLevelContent)
    • intersects

      public boolean intersects(CssContext cssCtx, Shape clip)
      Description copied from class: Box
      NOTE: This method does not consider any children of this box but does consider the transformation matrix of the containing layer.
      Overrides:
      intersects in class Box
    • intersectsLine

      private boolean intersectsLine(CssContext cssCtx, Shape clip)
    • getPaintingClipEdge

      public Rectangle getPaintingClipEdge(CssContext cssCtx)
      Overrides:
      getPaintingClipEdge in class Box
    • intersectsInlineBlocks

      private boolean intersectsInlineBlocks(CssContext cssCtx, Shape clip)
    • getTextDecorations

      public List<TextDecoration> getTextDecorations()
    • setTextDecorations

      public void setTextDecorations(List<TextDecoration> textDecorations)
    • getPaintingHeight

      public int getPaintingHeight()
    • setPaintingHeight

      public void setPaintingHeight(int paintingHeight)
    • getPaintingTop

      public int getPaintingTop()
    • setPaintingTop

      public void setPaintingTop(int paintingTop)
    • getMinPaintingTop

      public int getMinPaintingTop()
    • getMaxPaintingBottom

      public int getMaxPaintingBottom()
    • addAllChildren

      public void addAllChildren(List<? super Box> list, Layer layer)
    • getNonFlowContent

      public List<Box> getNonFlowContent()
    • addNonFlowContent

      public void addNonFlowContent(BlockBox box)
    • reset

      public void reset(LayoutContext c)
      Description copied from class: Box
      Responsible for resetting the state of the box before a repeat call to BlockBox.layout(LayoutContext) or other layout methods.

      Any layout operation that is not idempotent MUST be reset in this method. Layout may be called several times on the one box.
      Overrides:
      reset in class Box
    • calcCanvasLocation

      public void calcCanvasLocation()
      Specified by:
      calcCanvasLocation in class Box
    • calcChildLocations

      public void calcChildLocations()
      Overrides:
      calcChildLocations in class Box
    • getMarkerData

      public MarkerData getMarkerData()
    • setMarkerData

      public void setMarkerData(MarkerData markerData)
    • isContainsDynamicFunction

      public boolean isContainsDynamicFunction()
    • setContainsDynamicFunction

      public void setContainsDynamicFunction(boolean containsPageCounter)
    • getContentStart

      public int getContentStart()
    • setContentStart

      public void setContentStart(int contentOffset)
    • findTrailingText

      public InlineText findTrailingText()
    • trimTrailingSpace

      public void trimTrailingSpace(LayoutContext c)
    • find

      public Box find(CssContext cssCtx, int absX, int absY, boolean findAnonymous)
      Overrides:
      find in class Box
    • getBaseline

      public int getBaseline()
    • setBaseline

      public void setBaseline(int baseline)
    • isContainsOnlyBlockLevelContent

      public boolean isContainsOnlyBlockLevelContent()
    • isContainsVisibleContent

      public boolean isContainsVisibleContent()
    • collectText

      public void collectText(RenderingContext c, StringBuilder buffer)
      Overrides:
      collectText in class Box
    • exportText

      public void exportText(RenderingContext c, Writer writer) throws IOException
      Overrides:
      exportText in class Box
      Throws:
      IOException
    • analyzePageBreaks

      public void analyzePageBreaks(LayoutContext c, ContentLimitContainer container)
      Overrides:
      analyzePageBreaks in class Box
    • checkPagePosition

      public void checkPagePosition(LayoutContext c, boolean alwaysBreak)
      Checks if this line box crosses a page break and if so moves it to the next page. Also takes care that in-flow lines do not overlap footnote content.
    • afterChangePage

      private void afterChangePage(LayoutContext c)
    • beforeChangePage

      private void beforeChangePage(LayoutContext c)
    • checkFootnoteReservedPage

      private void checkFootnoteReservedPage(LayoutContext c, PageBox pageBoxAfter, boolean runHooks)
      Checks that the line box is not on a footnote reserved page and if so pushes it down to the first non-reserved page.
    • overlapsFootnote

      private boolean overlapsFootnote(PageBox pageBox)
    • getJustificationInfo

      public JustificationInfo getJustificationInfo()
    • setJustificationInfo

      private void setJustificationInfo(JustificationInfo justificationInfo)
    • setDirectionality

      public void setDirectionality(byte direction)
    • isLayedOutRTL

      public boolean isLayedOutRTL()
    • hasNonTextContent

      public boolean hasNonTextContent(CssContext c)
      Overrides:
      hasNonTextContent in class Box
    • isTerminalColumnBreak

      public boolean isTerminalColumnBreak()
      Description copied from class: Box
      Is this box unbreakable in regards to column break opportunities?
      Overrides:
      isTerminalColumnBreak in class Box
    • isEndsOnNL

      public boolean isEndsOnNL()
    • setEndsOnNL

      public void setEndsOnNL(boolean endsOnNL)
    • getReferencedFootnoteBodies

      public List<BlockBox> getReferencedFootnoteBodies()
      Gets the list of footnote bodies which have calls in this line of text. Useful for moving those footnotes when this line is moved to a new page.
    • hasFootnotes

      public boolean hasFootnotes()
    • addReferencedFootnoteBody

      public void addReferencedFootnoteBody(BlockBox footnoteBody)
    • getParent

      public BlockBox getParent()
      Narrows the return type of LineBox to a BlockBox. Reduces the need to cast everywhere.
      Overrides:
      getParent in class Box