public class TextRenderer extends AbstractRenderer
renderer
object for a Text
object. It will draw the glyphs of the textual content on the DrawContext
.Modifier and Type | Field and Description |
---|---|
protected com.itextpdf.io.font.otf.GlyphLine |
line |
protected boolean |
otfFeaturesApplied |
protected String |
strToBeConverted |
protected float |
tabAnchorCharacterPosition |
protected com.itextpdf.io.font.otf.GlyphLine |
text |
protected static float |
TEXT_SPACE_COEFF |
protected float |
yLineOffset |
childRenderers, EPS, flushed, INF, isLastRendererForModelElement, modelElement, occupiedArea, parent, positionedRenderers, properties
Modifier | Constructor and Description |
---|---|
|
TextRenderer(Text textElement)
Creates a TextRenderer from its corresponding layout object.
|
protected |
TextRenderer(TextRenderer other) |
|
TextRenderer(Text textElement,
String text)
Creates a TextRenderer from its corresponding layout object, with a custom
text to replace the contents of the
Text . |
Modifier and Type | Method and Description |
---|---|
void |
applyOtf() |
protected int |
baseCharactersCount() |
protected float |
calculateLineWidth() |
int |
charAt(int pos)
Gets char code at given position for the text belonging to this renderer.
|
protected TextRenderer |
createOverflowRenderer() |
protected TextRenderer |
createSplitRenderer() |
void |
draw(DrawContext drawContext)
Flushes the renderer subtree contents, i.e. draws itself on canvas,
adds necessary objects to the
PdfDocument etc. |
void |
drawBackground(DrawContext drawContext)
Draws a background layer if it is defined by a key
Property.BACKGROUND
in either the layout element or this IRenderer itself. |
protected void |
drawSingleUnderline(Underline underline,
Color fontStrokeColor,
PdfCanvas canvas,
float fontSize,
float italicAngleTan) |
float |
getAscent()
Gets the maximum offset above the base line that this Text extends to.
|
float |
getDescent()
Gets the maximum offset below the base line that this Text extends to.
|
protected Float |
getFirstYLineRecursively()
Gets the first yLine of the nested children recursively.
|
IRenderer |
getNextRenderer()
Gets a new instance of this class to be used as a next renderer, after this renderer is used, if
IRenderer.layout(LayoutContext) is called more than once. |
protected int |
getNumberOfSpaces() |
float |
getTabAnchorCharacterPosition() |
com.itextpdf.io.font.otf.GlyphLine |
getText() |
float |
getYLine()
Gets the position on the canvas of the imaginary horizontal line upon which
the
Text 's contents will be written. |
protected static boolean |
isNewLine(com.itextpdf.io.font.otf.GlyphLine text,
int ind) |
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. |
int |
length()
The length of the whole text assigned to this renderer.
|
protected int |
lineLength()
Returns the length of the
line which is the result of the layout call. |
void |
moveYLineTo(float y)
Moves the vertical position to the parameter's value.
|
void |
setText(com.itextpdf.io.font.otf.GlyphLine text,
int leftPos,
int rightPos)
Manually sets a GlyphLine to be rendered with a specific start and end
point.
|
void |
setText(String text)
Manually sets the contents of the Text's representation on the canvas,
regardless of the Text's own contents.
|
protected TextRenderer[] |
split(int initialOverflowTextPos) |
String |
toString()
Returns a string representation of the renderer.
|
void |
trimFirst()
Trims any whitespace characters from the start of the
GlyphLine
to be rendered. |
float |
trimLast()
Trims any whitespace characters from the end of the
GlyphLine to
be rendered. |
addAllProperties, addChild, alignChildHorizontally, applyAbsolutePositioningTranslation, applyAction, applyBorderBox, applyBorderBox, applyDestination, applyMargins, applyMargins, applyPaddings, applyPaddings, calculateAbsolutePdfBBox, calculateBBox, deleteOwnProperty, deleteProperty, drawBorder, drawChildren, getBorderAreaBBox, getBorders, getChildRenderers, getDefaultProperty, getInnerAreaBBox, getMargins, getModelElement, getOccupiedArea, getOccupiedAreaBBox, getOwnProperties, getOwnProperty, getPaddings, getProperty, getProperty, getPropertyAsBoolean, getPropertyAsColor, getPropertyAsFloat, getPropertyAsFloat, getPropertyAsFont, getPropertyAsInteger, hasOwnOrModelProperty, hasOwnProperty, hasProperty, initElementAreas, isFixedLayout, isFlushed, isKeepTogether, isNotFittingHeight, isNotFittingLayoutArea, isPositioned, isRelativePosition, move, rectangleToPointsList, retrieveHeight, retrieveUnitValue, retrieveWidth, setBorders, setParent, setProperty, transformPoints
protected static final float TEXT_SPACE_COEFF
protected float yLineOffset
protected com.itextpdf.io.font.otf.GlyphLine text
protected com.itextpdf.io.font.otf.GlyphLine line
protected String strToBeConverted
protected boolean otfFeaturesApplied
protected float tabAnchorCharacterPosition
public TextRenderer(Text textElement)
textElement
- the Text
which this object should managepublic TextRenderer(Text textElement, String text)
Text
.textElement
- the Text
which this object should managetext
- the replacement textprotected TextRenderer(TextRenderer other)
public LayoutResult layout(LayoutContext layoutContext)
IRenderer
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 informationpublic void applyOtf()
public void draw(DrawContext drawContext)
AbstractRenderer
PdfDocument
etc.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 drawingpublic void drawBackground(DrawContext drawContext)
AbstractRenderer
Property.BACKGROUND
in either the layout element or this IRenderer
itself.drawBackground
in class AbstractRenderer
drawContext
- the context (canvas, document, etc) of this drawing operation.public void trimFirst()
GlyphLine
to be rendered.public float trimLast()
GlyphLine
to
be rendered.public float getAscent()
Text
public float getDescent()
Text
public float getYLine()
Text
's contents will be written.DrawContext
public void moveYLineTo(float y)
y
- the new vertical position of the Textpublic void setText(String text)
text
- the replacement textpublic void setText(com.itextpdf.io.font.otf.GlyphLine text, int leftPos, int rightPos)
text
- a GlyphLine
leftPos
- the leftmost end of the GlyphLinerightPos
- the rightmost end of the GlyphLinepublic com.itextpdf.io.font.otf.GlyphLine getText()
public int length()
public String toString()
AbstractRenderer
toString
in class AbstractRenderer
String
Object.toString()
public int charAt(int pos)
pos
- the position in range [0; length())public float getTabAnchorCharacterPosition()
public IRenderer getNextRenderer()
IRenderer
IRenderer.layout(LayoutContext)
is called more than once.protected static boolean isNewLine(com.itextpdf.io.font.otf.GlyphLine text, int ind)
protected Float getFirstYLineRecursively()
AbstractRenderer
getFirstYLineRecursively
in class AbstractRenderer
protected int lineLength()
line
which is the result of the layout call.protected int baseCharactersCount()
protected int getNumberOfSpaces()
protected TextRenderer createSplitRenderer()
protected TextRenderer createOverflowRenderer()
protected TextRenderer[] split(int initialOverflowTextPos)
protected void drawSingleUnderline(Underline underline, Color fontStrokeColor, PdfCanvas canvas, float fontSize, float italicAngleTan)
protected float calculateLineWidth()
Copyright © 1998–2016 iText Group NV. All rights reserved.