itext.layout
Represents a border.
The null Border, i.e. the presence of such border is equivalent to the absence of the border
Value used by discontinuous borders during the drawing process
The solid border.
The dashed border.
The dotted border.
The double border.
The round-dots border.
The 3D groove border.
The 3D inset border.
The 3D outset border.
The 3D ridge border.
The color of the border.
The width of the border.
The type of the border.
The hash value for the border.
Creates a
border
with the given width.
Creates a
border
with the given width.
The
color
to be set by default is black
the width which the border should have
Creates a
border
with given width and
color.
the color which the border should have
the width which the border should have
Creates a
border
with given width,
color
and opacity.
the color which the border should have
the width which the border should have
the opacity which border should have; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the
drawing direction.
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the
drawing direction. Borders are drawn in this order: top, right, bottom, left.
Given points specify the line which lies on the border of the content area,
therefore the border itself should be drawn to the left from the drawing direction.
borderWidthBefore and borderWidthAfter parameters are used to
define the widths of the borders that are before and after the current border, e.g. for
the bottom border, borderWidthBefore specifies width of the right border and
borderWidthAfter - width of the left border. Those width are used to handle areas
of border joins.
PdfCanvas to be written to
x coordinate of the beginning point of the element side, that should be bordered
y coordinate of the beginning point of the element side, that should be bordered
x coordinate of the ending point of the element side, that should be bordered
y coordinate of the ending point of the element side, that should be bordered
the
, that we will fallback to, if it cannot be determined by border coordinates
defines width of the border that is before the current one
defines width of the border that is after the current one
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the
drawing direction.
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the
drawing direction. Borders are drawn in this order: top, right, bottom, left.
Given points specify the line which lies on the border of the content area,
therefore the border itself should be drawn to the left from the drawing direction.
borderWidthBefore and borderWidthAfter parameters are used to
define the widths of the borders that are before and after the current border, e.g. for
the bottom border, borderWidthBefore specifies width of the right border and
borderWidthAfter - width of the left border. Those width are used to handle areas
of border joins.
borderRadius is used to draw rounded borders.
PdfCanvas to be written to
x coordinate of the beginning point of the element side, that should be bordered
y coordinate of the beginning point of the element side, that should be bordered
x coordinate of the ending point of the element side, that should be bordered
y coordinate of the ending point of the element side, that should be bordered
defines the radius of the element's corners
the
, that we will fallback to, if it cannot be determined by border coordinates
defines width of the border that is before the current one
defines width of the border that is after the current one
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the
drawing direction.
All borders are supposed to be drawn in such way, that inner content of the element is on the right from the
drawing direction. Borders are drawn in this order: top, right, bottom, left.
Given points specify the line which lies on the border of the content area,
therefore the border itself should be drawn to the left from the drawing direction.
borderWidthBefore and borderWidthAfter parameters are used to
define the widths of the borders that are before and after the current border, e.g. for
the bottom border, borderWidthBefore specifies width of the right border and
borderWidthAfter - width of the left border. Those width are used to handle areas
of border joins.
horizontalRadius1, verticalRadius1, horizontalRadius2
and verticalRadius2 are used to draw rounded borders.
PdfCanvas to be written to
x coordinate of the beginning point of the element side, that should be bordered
y coordinate of the beginning point of the element side, that should be bordered
x coordinate of the ending point of the element side, that should be bordered
y coordinate of the ending point of the element side, that should be bordered
defines the horizontal radius of the border's first corner
defines the vertical radius of the border's first corner
defines the horizontal radius of the border's second corner
defines the vertical radius of the border's second corner
the
, that we will fallback to, if it cannot be determined by border coordinates
defines width of the border that is before the current one
defines width of the border that is after the current one
Draws the border of a cell.
PdfCanvas to be written to
x coordinate of the beginning point of the element side, that should be bordered
y coordinate of the beginning point of the element side, that should be bordered
x coordinate of the ending point of the element side, that should be bordered
y coordinate of the ending point of the element side, that should be bordered
the
, that we will fallback to, if it cannot be determined by border coordinates
Returns the type of the
border
the type of border.
Gets the
color
of the
border
the
color
Gets the opacity of the
border
the border opacity; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
Gets the width of the
border
the width
Sets the
color
of the
border
The color
Sets the width of the
border
The width
Indicates whether the border is equal to the given border.
Indicates whether the border is equal to the given border.
The border type, width and color are considered during the comparison.
Returns the
side
corresponded to the line between two points.
Returns the
side
corresponded to the line between two points.
Notice that we consider the rectangle traversal to be clockwise.
In case side couldn't be detected we will fallback to default side
the abscissa of the left-bottom point
the ordinate of the left-bottom point
the abscissa of the right-top point
the ordinate of the right-top point
the default side of border
the corresponded
side
Enumerates the different sides of the rectangle.
Enumerates the different sides of the rectangle.
The rectangle sides are expected to be parallel to corresponding page sides
Otherwise the result is Side.NONE
Adjusts the size of the gap between dots
the
border
length
the initial size of the gap
the adjusted size of the gap
Perform drawing operations to draw discontinuous borders.
Perform drawing operations to draw discontinuous borders. Used by
,
and
.
canvas to draw on
rectangle representing the bounding box of the drawing operations
the horizontal radius of the border's two corners
the vertical radius of the border's two corners
the
, that we will fallback to, if it cannot be determined by border coordinates
defines width of the border that is before the current one
defines width of the border that is after the current one
Calculate adjusted starting points for discontinuous borders, given two opposing points (A and B) that define the bounding rectangle
x-coordinate of point A
y-ordinate of point A
x-coordinate of point B
y-ordinate of point B
default side of the border used to determine the side given by points A and B
float[] containing the adjusted starting points in the form {x1,y1,x2,y2}
Represents a border that is displayed using a 3D effect.
Predefined gray
RGB-color
Creates a Border3D instance with the specified width.
Creates a Border3D instance with the specified width. Also sets the color to gray.
with of the border
Creates a Border3D instance with the specified width and color.
color of the border
width of the border
Creates a Border3D instance with the specified width and color.
color of the border
width of the border
Creates a Border3D instance with the specified width and color.
color of the border
width of the border
Creates a Border3D instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates a Border3D instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates a Border3D instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Makes the
color of the border darker and returns the result
The darker color
Sets the fill color for the inner half of
3D Border
PdfCanvas the color will be applied on
the
side
the color will be applied on
Sets the fill color for the outer half of
3D Border
PdfCanvas the color will be applied on
the
side
the color will be applied on
Draws a border with dashes around the element it's been set to.
The modifier to be applied on the width to have the dash size
The modifier to be applied on the width to have the initial gap size
Creates a DashedBorder with the specified width and sets the color to black.
width of the border
Creates a DashedBorder with the specified width and the specified color.
color of the border
width of the border
Creates a DashedBorder with the specified width, color and opacity.
color of the border
width of the border
width of the border
Adjusts the size of the gap between dots
the
border
length
the initial size of the gap
the adjusted size of the gap
Draws a dotted border around the element it has been set to.
Draws a dotted border around the element it has been set to. Do note that this border draw square dots,
if you want to draw round dots, see
.
The modifier to be applied on the width to have the initial gap size
Creates a DottedBorder instance with the specified width.
Creates a DottedBorder instance with the specified width. The color is set to the default: black.
width of the border
Creates a DottedBorder instance with the specified width and color.
color of the border
width of the border
Creates a DottedBorder with the specified width, color and opacity.
color of the border
width of the border
width of the border
Adjusts the size of the gap between dots
the
border
length
the initial size of the gap
the adjusted size of the gap
Creates a double border around the element it's set to.
Creates a double border around the element it's set to. The space between the two border lines has
the same width as the two borders. If a background has been set on the element the color will show in
between the two borders.
Creates a DoubleBorder with the specified width for both the two borders as the space in between them.
Creates a DoubleBorder with the specified width for both the two borders as the space in between them.
The color is set to the default: black.
width of the borders and the space between them
Creates a DoubleBorder with the specified width for both the two borders as the space in between them and
the specified color for the two borders.
Creates a DoubleBorder with the specified width for both the two borders as the space in between them and
the specified color for the two borders. The space in between the two borders is either colorless or will
be filled with the background color of the element, if a color has been set.
The color of the borders
The width of the borders and the space between them
Creates a DoubleBorder with the specified width for both the two borders as the space in between them and
the specified color for the two borders.
Creates a DoubleBorder with the specified width for both the two borders as the space in between them and
the specified color for the two borders. The space in between the two borders is either colorless or will
be filled with the background color of the element, if a color has been set.
The color of the borders
The width of the borders and the space between them
The opacity
Creates a GrooveBorder instance with the specified width.
Creates a GrooveBorder instance with the specified width. The color is set to the predefined gray.
width of the border
Creates a GrooveBorder instance with the specified width and the
rgb color.
width of the border
the
rgb color
of the border
Creates a GrooveBorder instance with the specified width and the
cmyk color.
width of the border
the
cmyk color
of the border
Creates a GrooveBorder instance with the specified width and the
gray color.
width of the border
the
gray color
of the border
Creates a GrooveBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates a GrooveBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates a GrooveBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates an InsetBorder instance with the specified width.
Creates an InsetBorder instance with the specified width. The color is set to the predefined gray.
width of the border
Creates an InsetBorder instance with the specified width and the
rgb color.
width of the border
the
rgb color
of the border
Creates an InsetBorder instance with the specified width and the
cmyk color.
width of the border
the
cmyk color
of the border
Creates an InsetBorder instance with the specified width and the
gray color.
width of the border
the
gray color
of the border
Creates an InsetBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates an InsetBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates an InsetBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates an OutsetBorder instance with the specified width.
Creates an OutsetBorder instance with the specified width. The color is set to the predefined gray.
width of the border
Creates an OutsetBorder instance with the specified width and the
rgb color.
width of the border
the
rgb color
of the border
Creates an OutsetBorder instance with the specified width and the
cmyk color.
width of the border
the
cmyk color
of the border
Creates an OutsetBorder instance with the specified width and the
gray color.
width of the border
the
gray color
of the border
Creates an OutsetBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates an OutsetBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates an OutsetBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates a RidgeBorder instance with the specified width.
Creates a RidgeBorder instance with the specified width. The color is set to the predefined gray.
width of the border
Creates a RidgeBorder instance with the specified width and the
rgb color.
width of the border
the
rgb color
of the border
Creates a RidgeBorder instance with the specified width and the
cmyk color.
width of the border
the
cmyk color
of the border
Creates a RidgeBorder instance with the specified width and the
gray color.
width of the border
the
gray color
of the border
Creates a RidgeBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates a RidgeBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Creates a RidgeBorder instance with the specified width, color and opacity.
color of the border
width of the border
opacity of the border
Draws a border with rounded dots around the element it's been set to.
Draws a border with rounded dots around the element it's been set to. For square dots see
.
The modifier to be applied on the width to have the initial gap size
Creates a RoundDotsBorder with the specified wit?dth and sets the color to black.
width of the border
Creates a RoundDotsBorder with the specified wit?dth and the specified color.
color of the border
width of the border
Creates a RoundDotsBorder with the specified width, color and opacity.
color of the border
width of the border
width of the border
Adjusts the size of the gap between dots
the
border
length
the initial size of the gap
the adjusted size of the gap
Draws a solid border around the element it's set to.
Creates a SolidBorder with the specified width and sets the color to black.
width of the border
Creates a SolidBorder with the specified width and the specified color.
color of the border
width of the border
Creates a SolidBorder with the specified width, color and opacity.
color of the border
width of the border
width of the border
This class is used for adding content directly onto a specified
.
This class is used for adding content directly onto a specified
.
does not know the concept of a page, so it can't reflow to a 'next'
.
This class effectively acts as a bridge between the high-level layout
API and the low-level kernel API.
Is initialized and used only when Canvas element autotagging is enabled, see
.
Is initialized and used only when Canvas element autotagging is enabled, see
.
It is also used to determine if autotagging is enabled.
Creates a new Canvas to manipulate a specific page content stream.
Creates a new Canvas to manipulate a specific page content stream. The given page shall not be flushed:
drawing on flushed pages is impossible because their content is already written to the output stream.
Use this constructor to be able to add
elements on it
(using any other constructor would result in inability to add PDF annotations, based on which, for example, links work).
If the
is true, using this constructor would automatically enable
the tagging for the content. Regarding tagging the effect is the same as using
.
the page on which this canvas will be rendered, shall not be flushed (see
).
the maximum area that the Canvas may write upon
Creates a new Canvas to manipulate a specific content stream, which might be for example a page
or
stream.
the low-level content stream writer
the maximum area that the Canvas may write upon
Creates a new Canvas to manipulate a specific document and content stream, which might be for example a page
or
stream.
the low-level content stream writer
the document that the resulting content stream will be written to
the maximum area that the Canvas may write upon
To be removed in 7.2
Creates a new Canvas to manipulate a specific document and page.
The low-level content stream writer
The maximum area that the Canvas may write upon
Whether to flush the canvas immediately after operations, false otherwise
Creates a new Canvas to manipulate a specific document and page.
The low-level content stream writer
The document that the resulting content stream will be written to
The maximum area that the Canvas may write upon
Whether to flush the canvas immediately after operations, false otherwise
To be removed in 7.2
Creates a new Canvas to manipulate a specific
.
the form
the document that the resulting content stream will be written to
Gets the
for this canvas.
the document that the resulting content stream will be written to
Gets the root area rectangle.
the maximum area that the Canvas may write upon
Gets the
.
the low-level content stream writer
Sets the
for this Canvas.
a renderer specific for canvas operations
The page on which this canvas will be rendered.
the specified
instance, might be null if this the page was not set.
Enables canvas content autotagging.
Enables canvas content autotagging. By default it is disabled.
the page, on which this canvas will be rendered.
true if autotagging of canvas content is enabled. Default value - false.
Defines if the canvas is exactly the direct content of the page.
Defines if the canvas is exactly the direct content of the page. This is known definitely only if
this instance was created by
constructor overload,
otherwise this method returns false.
true if the canvas on which this instance performs drawing is directly the canvas of the page;
false if the instance of this class was created not with
constructor overload.
Performs an entire recalculation of the element flow on the canvas,
taking into account all its current child elements.
Performs an entire recalculation of the element flow on the canvas,
taking into account all its current child elements. May become very
resource-intensive for large documents.
Do not use when you have set
to true.
Forces all registered renderers (including child element renderers) to
flush their contents to the content stream.
Closes the
.
Closes the
. Although not completely necessary in all cases, it is still recommended to call this
method when you are done working with
object, as due to some properties set there might be some
'hanging' elements, which are waiting other elements to be added and processed.
tells the
that no more elements will be added and it is time to finish processing all the elements.
This class is used for convenient multi-column Document Layouting
Creates a ColumnDocumentRenderer.
Creates a ColumnDocumentRenderer. Sets
to true.
the
on which this Renderer will calculate
and execute element placements
an array of
specifying the acceptable
positions for elements on a page
Creates a ColumnDocumentRenderer whose elements need not be flushed
immediately.
the
on which this Renderer will calculate
and execute element placements
whether or not to flush contents as soon as possible
an array of
specifying the acceptable
positions for elements on a page
Gets the array index of the next area that will be written on after the
current one is full (overflowed).
the array index of the next area that will be written on
Document is the default root element when creating a self-sufficient PDF.
Document is the default root element when creating a self-sufficient PDF. It
mainly operates high-level operations e.g. setting page size and rotation,
adding elements, and writing text at specific coordinates. It has no
knowledge of the actual PDF concepts and syntax.
A
's rendering behavior can be modified by extending
and setting an instance of this newly created with
.
Creates a document from a
.
Creates a document from a
. Initializes the first page
with the
's current default
.
the in-memory representation of the PDF document
Creates a document from a
with a manually set
.
the in-memory representation of the PDF document
the page size
Creates a document from a
with a manually set
.
the in-memory representation of the PDF document
the page size
if true, write pages and page-related instructions
to the
as soon as possible.
Closes the document and associated PdfDocument.
Terminates the current element, usually a page.
Terminates the current element, usually a page. Sets the next element
to be the size specified in the argument.
an
, optionally with a specified size
this element
Gets PDF document.
the in-memory representation of the PDF document
Changes the
at runtime.
Changes the
at runtime. Use this to customize
the Document's
behavior.
the DocumentRenderer to set
Forces all registered renderers (including child element renderers) to
flush their contents to the content stream.
Performs an entire recalculation of the document flow, taking into
account all its current child elements.
Performs an entire recalculation of the document flow, taking into
account all its current child elements. May become very
resource-intensive for large documents.
Do not use when you have set
to true.
Gets the left margin, measured in points
a float containing the left margin value
Sets the left margin, measured in points
a float containing the new left margin value
Gets the right margin, measured in points
a float containing the right margin value
Sets the right margin, measured in points
a float containing the new right margin value
Gets the top margin, measured in points
a float containing the top margin value
Sets the top margin, measured in points
a float containing the new top margin value
Gets the bottom margin, measured in points
a float containing the bottom margin value
Sets the bottom margin, measured in points
a float containing the new bottom margin value
Convenience method to set all margins with one method.
the upper margin
the right margin
the left margin
the lower margin
Returns the area that will actually be used to write on the page, given
the current margins.
Returns the area that will actually be used to write on the page, given
the current margins. Does not have any side effects on the document.
the size of the page to
a
with the required dimensions and origin point
Checks whether a method is invoked at the closed document
A generic abstract element that fits in a PDF layout object hierarchy.
A generic abstract element that fits in a PDF layout object hierarchy.
A superclass of all
layout object
implementations.
this type
Sets values for a relative repositioning of the Element.
Sets values for a relative repositioning of the Element. Also has as a
side effect that the Element's
is changed to
relative.
The default implementation in
treats
left and top as the most important values. Only
if left == 0 will right be used for the
calculation; ditto for top vs. bottom.
movement to the left
movement upwards on the page
movement to the right
movement downwards on the page
this Element.
Sets values for a absolute repositioning of the Element.
Sets values for a absolute repositioning of the Element.
The coordinates specified correspond to the
bottom-left corner of the element and it grows upwards.
Also has as a side effect that the Element's
is changed to
fixed.
horizontal position of the bottom-left corner on the page
vertical position of the bottom-left corner on the page
a floating point value measured in points.
this Element.
Sets values for a absolute repositioning of the Element.
Sets values for a absolute repositioning of the Element.
The coordinates specified correspond to the
bottom-left corner of the element and it grows upwards.
Also has as a side effect that the Element's
is changed to
fixed.
horizontal position of the bottom-left corner on the page
vertical position of the bottom-left corner on the page
a
this Element.
Sets values for a absolute repositioning of the Element.
Sets values for a absolute repositioning of the Element.
The coordinates specified correspond to the
bottom-left corner of the element and it grows upwards.
Also has as a side effect that the Element's
is changed to
fixed.
the page where the element must be positioned
horizontal position of the bottom-left corner on the page
vertical position of the bottom-left corner on the page
a floating point value measured in points.
this Element.
Sets values for a absolute repositioning of the Element.
Sets values for a absolute repositioning of the Element.
The coordinates specified correspond to the
bottom-left corner of the element and it grows upwards.
Also has as a side effect that the Element's
is changed to
fixed.
the page where the element must be positioned
horizontal position of the bottom-left corner on the page
vertical position of the bottom-left corner on the page
a floating point value measured in points.
this Element.
Sets the horizontal alignment of this Element.
an enum value of type
this Element.
Sets the font of this Element.
Sets the font of this Element.
This property overrides the value set by
. Font is set either via exact
instance or via font-family name that should correspond to the font in
, but not both.
a
font
this Element.
Sets the preferable font families for this Element.
Sets the preferable font families for this Element.
Note that
shall be set as well.
See
This property overrides the value set by
. Font is set either via exact
instance or via font-family name that should correspond to the font in
, but not both.
All
that are passed as argument are directly handled as a collection of font family names,
without any pre-processing. Every font family name is treated as a preferable font-family to be used
inside the element. The
argument is interpreted as as an ordered list,
where every next font-family should be used if font for the previous one was not found or doesn't contain required glyphs.
defines an ordered list of preferable font families for this Element.
this Element.
Sets the preferable font families for this Element.
Sets the preferable font families for this Element.
Note that
shall be set as well.
See
This property overrides the value set by
. Font is set either via exact
instance or via font-family name that should correspond to the font in
, but not both.
All
that are passed as argument are directly handled as a collection of font family names,
without any pre-processing. Every font family name is treated as a preferable font-family to be used
inside the element. The
argument is interpreted as as an ordered list,
where every next font-family should be used if font for the previous one was not found or doesn't contain required glyphs.
defines an ordered list of preferable font families for this Element.
this Element.
Sets the font family of this Element.
Sets the font family of this Element. Note that
shall be set as well.
See
a font name to fetch from
this Element.
Sets the font color of this Element.
a
for the text in this Element.
this Element.
Sets the font color of this Element and the opacity of the text.
a
for the text in this Element.
an opacity for the text in this Element; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent.
this Element.
Sets the font size of this Element, measured in points.
a floating point value
this Element.
Sets the text alignment of this Element.
an enum value of type
this Element.
Defines a custom spacing distance between all characters of a textual element.
Defines a custom spacing distance between all characters of a textual element.
The character-spacing parameter is added to the glyph's horizontal or vertical displacement (depending on the writing mode).
a floating point value
this Element.
Defines a custom spacing distance between words of a textual element.
Defines a custom spacing distance between words of a textual element.
This value works exactly like the character spacing, but only kicks in at word boundaries.
a floating point value
this Element.
Enable or disable kerning.
Enable or disable kerning.
Some fonts may specify kern pairs, i.e. pair of glyphs, between which the amount of horizontal space is adjusted.
This adjustment is typically negative, e.g. in "AV" pair the glyphs will typically be moved closer to each other.
an enum value as a boolean wrapper specifying whether or not to apply kerning
this Element.
Specifies a background color for the Element.
the background color
this Element.
Specifies a background color for the Element.
the background color
the background color opacity; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent.
this Element.
Specifies a background color for the Element, and extra space that
must be counted as part of the background and therefore colored.
the background color
extra coloring to the left side
extra coloring at the top
extra coloring to the right side
extra coloring at the bottom
this Element.
Specifies a background color for the Element, and extra space that
must be counted as part of the background and therefore colored.
the background color
the background color opacity; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
extra coloring to the left side
extra coloring at the top
extra coloring to the right side
extra coloring at the bottom
this Element.
Sets a border for all four edges of this Element with customizable color, width, pattern type.
a customized
this Element.
Sets a border for the upper limit of this Element with customizable color, width, pattern type.
a customized
this Element.
Sets a border for the right limit of this Element with customizable color, width, pattern type.
a customized
this Element.
Sets a border for the bottom limit of this Element with customizable color, width, pattern type.
a customized
this Element.
Sets a border for the left limit of this Element with customizable color, width, pattern type.
a customized
this Element.
Sets a border radius for all four edges of this Element.
a customized
this Element.
Sets a border radius for the bottom left corner of this Element.
a customized
this Element.
Sets a border radius for the bottom right corner of this Element.
a customized
this Element.
Sets a border radius for the top left corner of this Element.
a customized
this Element.
Sets a border radius for the top right corner of this Element.
a customized
this Element.
Sets a rule for splitting strings when they don't fit into one line.
Sets a rule for splitting strings when they don't fit into one line.
The default implementation is
an implementation of
this Element.
Gets a rule for splitting strings when they don't fit into one line.
the current string splitting rule, an implementation of
Gets the text rendering mode, a variable that determines whether showing
text causes glyph outlines to be stroked, filled, used as a clipping
boundary, or some combination of the three.
the current text rendering mode
Sets the text rendering mode, a variable that determines whether showing
text causes glyph outlines to be stroked, filled, used as a clipping
boundary, or some combination of the three.
an int value
this Element.
Gets the stroke color for the current element.
Gets the stroke color for the current element.
The stroke color is the color of the outlines or edges of a shape.
the current stroke color
Sets the stroke color for the current element.
Sets the stroke color for the current element.
The stroke color is the color of the outlines or edges of a shape.
a new stroke color
this Element.
Gets the stroke width for the current element.
Gets the stroke width for the current element.
The stroke width is the width of the outlines or edges of a shape.
the current stroke width
Sets the stroke width for the current element.
Sets the stroke width for the current element.
The stroke width is the width of the outlines or edges of a shape.
a new stroke width
this Element.
Switch on the simulation of bold style for a font.
Switch on the simulation of bold style for a font.
Be aware that using correct bold font is highly preferred over this option.
this element
Switch on the simulation of italic style for a font.
Switch on the simulation of italic style for a font.
Be aware that using correct italic (oblique) font is highly preferred over this option.
this element
Sets default line-through attributes for text.
Sets default line-through attributes for text.
See
for more fine tuning.
this element
Sets default underline attributes for text.
Sets default underline attributes for text.
See other overloads for more fine tuning.
this element
Sets an horizontal line that can be an underline or a strikethrough.
Sets an horizontal line that can be an underline or a strikethrough.
Actually, the line can be anywhere vertically and has always the text width.
Multiple call to this method will produce multiple lines.
the absolute thickness of the line
the absolute y position relative to the baseline
this element
Sets an horizontal line that can be an underline or a strikethrough.
Sets an horizontal line that can be an underline or a strikethrough.
Actually, the line can be anywhere vertically due to position parameter.
Multiple call to this method will produce multiple lines.
The thickness of the line will be
thickness + thicknessMul * fontSize.
The position of the line will be
baseLine + yPosition + yPositionMul * fontSize.
the color of the line or null to follow the
text color
the absolute thickness of the line
the thickness multiplication factor with the font size
the absolute y position relative to the baseline
the position multiplication factor with the font size
the end line cap style. Allowed values are enumerated in
this element
Sets an horizontal line that can be an underline or a strikethrough.
Sets an horizontal line that can be an underline or a strikethrough.
Actually, the line can be anywhere vertically due to position parameter.
Multiple call to this method will produce multiple lines.
The thickness of the line will be
thickness + thicknessMul * fontSize.
The position of the line will be
baseLine + yPosition + yPositionMul * fontSize.
the color of the line or null to follow the
text color
the opacity of the line; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
the absolute thickness of the line
the thickness multiplication factor with the font size
the absolute y position relative to the baseline
the position multiplication factor with the font size
the end line cap style. Allowed values are enumerated in
this element
This attribute specifies the base direction of directionally neutral text
(i.e., text that doesn't have inherent directionality as defined in Unicode)
in an element's content and attribute values.
base direction
this element
Sets a custom hyphenation configuration which will hyphenate words automatically accordingly to the
language and country.
The hyphenation configuration
this element
Sets the writing system for this text element.
a new script type
this Element.
Sets a destination name that will be created when this element is drawn to content.
the destination name to be created
this Element.
Sets an opacity of the given element.
Sets an opacity of the given element. It will affect element content, borders and background. Note, that it will also
affect all element children, as they are the content of the given element.
a float between 0 and 1, where 1 stands for fully opaque element and 0 - for fully transparent
this Element.
Defines the most common properties that most
implementations
share.
the type of the implementation
Add a new style to this element.
Add a new style to this element. A style can be used as an effective way
to define multiple equal properties to several elements, however its properties have
lower priority than properties, directly set on
Note that if several Style objects are added, iText checks them one by one
in the order in which they were added and returns the property's value from
the last Style object, which contains this property. So, if there are two Style
objects added: the first has set width of 100 points and the second of 200 points,
iText will get 200 points as width value.
the style to be added
this element
Gets the child elements of this elements
a list of children
Returns true if this list contains no elements.
true if this list contains no elements
Sets an action on this Element.
Sets an action on this Element. An action is a general PDF concept that
signifies anything that makes the document interactive, e.g. a hyperlink
or a button.
the
that should be performed
this Element
Explicitly sets the page number this element should be put on.
Explicitly sets the page number this element should be put on. The location
on the page will be the same as if it were added at the end of the document,
but it will be located on the specified page.
This method should be used very carefully in client code.
the page number of the page this element should be placed on
this Element
A layout object that terminates the current content area and creates a new
one.
A layout object that terminates the current content area and creates a new
one. If no
is given, the new content area will have the same
size as the current one.
Creates an AreaBreak.
Creates an AreaBreak. The new content area will have the same size as the
current one.
Creates an AreaBreak that terminates a specified area type.
an
area break type
Creates an AreaBreak.
Creates an AreaBreak. The new content area will have the specified page
size.
the size of the new content area
Gets the page size.
the
page size
of the next content area.
Sets the page size.
the new
page size
of the next content area.
Gets the type of area that this AreaBreak will terminate.
the current
area break type
A
will try to take up as much horizontal space as
available to it on the canvas or page.
A
will try to take up as much horizontal space as
available to it on the canvas or page. The concept is comparable to the block
element in HTML. Also like in HTML, the visual representation of the object
can be delimited by padding, a border, and/or a margin.
the type of the implementation
Creates a BlockElement.
Gets the current left margin width of the element.
the left margin width, as a
object
Sets the left margin width of the element.
the new left margin width
this element
Gets the current right margin width of the element.
the right margin width, as a
object
Sets the right margin width of the element.
the new right margin width
this element
Gets the current top margin width of the element.
the top margin width, as a
object
Sets the top margin width of the element.
the new top margin width
this element
Gets the current bottom margin width of the element.
the bottom margin width, as a
object
Sets the bottom margin width of the element.
the new bottom margin width
this element
Sets all margins around the element to the same width.
the new margin width
this element
Sets the margins around the element to a series of new widths.
the new margin top width
the new margin right width
the new margin bottom width
the new margin left width
this element
Gets the current left padding width of the element.
the left padding width, as a
object
Sets the left padding width of the element.
the new left padding width
this element
Gets the current right padding width of the element.
the right padding width, as a
object
Sets the right padding width of the element.
the new right padding width
this element
Gets the current top padding width of the element.
the top padding width, as a
object
Sets the top padding width of the element.
the new top padding width
this element
Gets the current bottom padding width of the element.
the bottom padding width, as a
object
Sets the bottom padding width of the element.
the new bottom padding width
this element
Sets all paddings around the element to the same width.
the new padding width
this element
Sets the paddings around the element to a series of new widths.
the new padding top width
the new padding right width
the new padding bottom width
the new padding left width
this element
Sets the vertical alignment of the element.
the vertical alignment setting
this element
Sets a ratio which determines in which proportion will word spacing and character spacing
be applied when horizontal alignment is justified.
the ratio coefficient. It must be between 0 and 1, inclusive.
It means that ratio part of the free space will
be compensated by word spacing, and 1-ratio part of the free space will
be compensated by character spacing.
If ratio is 1, additional character spacing will not be applied.
If ratio is 0, additional word spacing will not be applied.
this element
Returns whether the
should be kept together as much
as possible.
the current value of the
property
Sets whether the
should be kept together as much
as possible.
the new value of the
property
this element
Returns whether the end of this
and the start of the next sibling of this element
should be placed in the same area.
the current value of the
property
Sets whether the end of this
and the start of the next sibling of this element
should be placed in the same area.
Sets whether the end of this
and the start of the next sibling of this element
should be placed in the same area.
Note that this will only work for high-level elements, i.e. elements added to the
.
the new value of the
property
this element
Sets the rotation radAngle.
the new rotation radAngle, as a float, in radians
this element
Sets the rotation angle.
the new rotation angle, as a double, in radians
this element
Sets the width property of a block element, measured in points.
a value measured in points.
this Element.
Sets the width property of a block element with a
.
a
object
this Element.
Gets the width property of a block element.
the width of the element, with a value and a measurement unit.
Sets the height property of a block element with a
.
a
object
this Element.
Sets the height property a block element as a point-value.
a floating point value for the new height
the block element itself.
Gets the height property of a block element.
the height of the element, as a floating point value. Null if the property is not present
Sets the max-height of a block element as point-unit value.
a floating point value for the new max-height
the block element itself
Sets the max-height property of a block element with a
.
a
object
the block element itself
Sets the min-height property of a block element with a
.
a
object
the block element itself
Sets the min-height of a block element as point-unit value.
a floating point value for the new min-height
the block element itself
Sets the max-width property of a block element with a
.
a
object
the block element itself
Sets the max-width of a block element as point-unit value.
a floating point value for the new max-width
the block element itself
Sets the min-width property of a block element with a
.
a
object
the block element itself
Sets the min-width of a block element as point-unit value.
a floating point value for the new min-width
the block element itself
A
is one piece of data in an enclosing grid, the
.
A
is one piece of data in an enclosing grid, the
.
This object is a
, giving it a number of visual layout
properties.
A cell can act as a container for a number of layout elements; it can only
contain other
objects or images. Other types of layout
elements must be wrapped in a
.
Creates a cell which takes a custom amount of cell spaces in the table.
the number of rows this cell must occupy. Negative numbers will make the argument default to 1.
the number of columns this cell must occupy. Negative numbers will make the argument default to 1.
Creates a cell.
Gets a cell renderer for this element.
Gets a cell renderer for this element. Note that this method can be called more than once.
By default each element should define its own renderer, but the renderer can be overridden by
method call.
a cell renderer for this element
Gets
the number of the row
in which the cell is located.
the row number
Gets
the number of the column
in which the cell is located.
the column number
Gets the
rowspan
of the cell.
the rowspan
Gets the
colspan
of the cell.
the colspan
Adds any block element to the cell's contents.
a
this Element
Adds an image to the cell's contents.
an
this Element
Clones a cell with its position, properties, and optionally its contents.
whether or not to also include the contents of the cell.
a clone of this Element
A
is a container object that defines a section in a document,
which will have some shared layout properties.
A
is a container object that defines a section in a document,
which will have some shared layout properties. Like all
types, it will try to take up as much horizontal space as possible.
The concept is very similar to that of the div tag in HTML.
Adds any block element to the div's contents.
a
this Element
Adds an image to the div's contents.
an
this Element
Adds an area break to the div's contents.
an
this Element
This class represents a layout element, i.e. a piece of content that will
take up 'physical' space on a canvas or document.
This class represents a layout element, i.e. a piece of content that will
take up 'physical' space on a canvas or document. Its presence and positioning
may influence the position of other
s on the layout surface.
Overrides the
instance which will be returned by the next call to the
.
the renderer instance
Gets a renderer for this element.
Gets a renderer for this element. Note that this method can be called more than once.
By default each element should define its own renderer, but the renderer can be overridden by
method call.
a renderer for this element
Creates a renderer subtree with root in the current element.
Creates a renderer subtree with root in the current element.
Compared to
, the renderer returned by this method should contain all the child
renderers for children of the current element.
a renderer subtree for this element
A
is a layout element which may get added to
indefinitely, making the object prohibitively large.
A
is a layout element which may get added to
indefinitely, making the object prohibitively large.
In order to avoid consuming and holding on to undesirable amounts of
resources, the contents of a
can be flushed regularly
by client code, e.g. at page boundaries or after a certain amount of additions.
Checks whether an element has already been marked as complete.
the completion marker boolean
Indicates that all the desired content has been added to this large element.
Writes the newly added content to the document.
Flushes the content which has just been added to the document.
Flushes the content which has just been added to the document.
This is a method for internal usage and is called automatically by the document.
Sets the document this element is bound to.
Sets the document this element is bound to.
We cannot write a large element into several documents simultaneously because we would need
more bulky interfaces for this feature. For now we went for simplicity.
the document
A marker subinterface of
that specifies that the layout object
is, by definition, on the lowest tier in the object hierarchy.
A marker subinterface of
that specifies that the layout object
is, by definition, on the lowest tier in the object hierarchy. A
leaf element
must not act as a container for other
elements.
A layout element that represents an image for inclusion in the document model.
Creates an
from an image XObject, the representation of an
image in PDF syntax.
an internal
Creates an
from a form XObject, the representation of a
form in PDF syntax.
an internal
Creates an
from an image XObject, the representation of an
image in PDF syntax, with a custom width.
an internal
a float value
Creates an
from an image XObject, the representation of an
image in PDF syntax, with a custom width and on a fixed position.
an internal
a float value representing the horizontal offset of the lower left corner of the image
a float value representing the vertical offset of the lower left corner of the image
a float value
Creates an
from an image XObject, the representation of an
image in PDF syntax, on a fixed position.
an internal
a float value representing the horizontal offset of the lower left corner of the image
a float value representing the vertical offset of the lower left corner of the image
Creates an
from a form XObject, the representation of a
form in PDF syntax.
an internal
a float value representing the horizontal offset of the lower left corner of the form
a float value representing the vertical offset of the lower left corner of the form
Creates an
from an image resource, read in from a file
with the iText I/O module.
an internal representation of the
image resource
Creates an
from an image resource, read in from a file
with the iText I/O module, on a fixed position.
an internal representation of the
image resource
a float value representing the horizontal offset of the lower left corner of the image
a float value representing the vertical offset of the lower left corner of the image
Creates an
from an image resource, read in from a file
with the iText I/O module, with a custom width and on a fixed position.
an internal representation of the
image resource
a float value representing the horizontal offset of the lower left corner of the image
a float value representing the vertical offset of the lower left corner of the image
a float value
Gets the XObject contained in this image object
a
Sets the rotation radAngle.
a value in radians
this element
Gets the current left margin width of the element.
the left margin width, as a
object
Sets the left margin width of the element.
the new left margin width
this element
Gets the current right margin width of the image.
the right margin width, as a
object
Sets the right margin width of the image.
the new right margin width
this image
Gets the current top margin width of the image.
the top margin width, as a
object
Sets the top margin width of the image.
the new top margin width
this image
Gets the current bottom margin width of the image.
the bottom margin width, as a
object
Sets the bottom margin width of the image.
the new bottom margin width
this image
Sets the margins around the image to a series of new widths.
the new margin top width
the new margin right width
the new margin bottom width
the new margin left width
this image
Gets the current left padding width of the image.
the left padding width, as a
object
Sets the left padding width of the image.
the new left padding width
this image
Gets the current right padding width of the image.
the right padding width, as a
object
Sets the right padding width of the image.
the new right padding width
this image
Gets the current top padding width of the image.
the top padding width, as a
object
Sets the top padding width of the image.
the new top padding width
this image
Gets the current bottom padding width of the image.
the bottom padding width, as a
object
Sets the bottom padding width of the image.
the new bottom padding width
this image
Sets all paddings around the image to the same width.
the new padding width
this image
Sets the paddings around the image to a series of new widths.
the new padding top width
the new padding right width
the new padding bottom width
the new padding left width
this image
Scale the image relative to its default size.
the horizontal scaling coefficient. default value 1 = 100%
the vertical scaling coefficient. default value 1 = 100%
this element
Scale the image to an absolute size.
Scale the image to an absolute size. This method will preserve the
width-height ratio of the image.
the new maximum width of the image
the new maximum height of the image
this element
Scale the image to an absolute size.
Scale the image to an absolute size. This method will not
preserve the width-height ratio of the image.
the new absolute width of the image
the new absolute height of the image
this element
Sets the autoscale property for both width and height.
whether or not to let the image resize automatically
this image
Sets the autoscale property for the height of the image.
Sets the autoscale property for the height of the image.
Is currently bugged and will not work as expected.
whether or not to let the image height resize automatically
this image
Sets the autoscale property for the width of the image.
whether or not to let the image width resize automatically
this image
Sets values for a absolute repositioning of the Element.
Sets values for a absolute repositioning of the Element. Also has as a
side effect that the Element's
is changed to
fixed.
horizontal position on the page
vertical position on the page
this image.
Sets values for a absolute repositioning of the Element, on a specific
page.
Sets values for a absolute repositioning of the Element, on a specific
page. Also has as a side effect that the Element's
is changed to
fixed.
the page where the element must be positioned
horizontal position on the page
vertical position on the page
this Element.
Gets width of the image.
Gets width of the image. It returns width of image or form XObject,
not the width set by one of the #setWidth methods
the original width of the image
Gets height of the image.
Gets height of the image. It returns height of image or form XObject,
not the height set by one of the #setHeight methods
the original height of the image
Sets the height property of the image, measured in points.
a value measured in points.
this image.
Sets the height property of the image with a
.
a value measured in points.
this image.
Sets the max-height property of the image, measured in points.
a value measured in points.
this image.
Sets the max-height property of the image with a
.
a value measured in points.
this image.
Sets the min-height property of the image, measured in points.
a value measured in points.
this image.
Sets the min-height property of the image with a
.
a value measured in points.
this image.
Sets the max-width property of the image, measured in points.
a value measured in points.
this image.
Sets the max-width property of the image with a
.
a value measured in points.
this image.
Sets the min-width property of the image, measured in points.
a value measured in points.
this image.
Sets the min-width property of the image with a
.
a value measured in points.
this image.
Sets the width property of the image, measured in points.
a value measured in points.
this image.
Sets the width property of the image with a
.
a
object
this image.
Gets the width property of the image.
the width of the element, with a value and a measurement unit.
Gets scaled width of the image.
the current scaled width
Gets scaled height of the image.
the current scaled height
This is a line separator element which is basically just a horizontal line with
a style specified by
custom drawing interface instance.
This is a line separator element which is basically just a horizontal line with
a style specified by
custom drawing interface instance.
This might be thought of as an HTML's <hr> element alternative.
Creates a custom line separator with line style defined by custom
interface instance
line drawer instance
A clickable piece of
which contains a
link annotation dictionary.
A clickable piece of
which contains a
link annotation dictionary
. The concept is largely similar to that of the
HTML anchor tag.
Creates a Link with a fully constructed link annotation dictionary.
the textual contents of the link
a
Creates a Link which can execute an action.
the textual contents of the link
a
Creates a Link to another location in the document.
the textual contents of the link
a
Gets the link annotation dictionary associated with this link.
a
A List is a layout element representing a series of objects that are vertically
outlined with the same or very similar layout properties, giving it a sense
of unity.
A List is a layout element representing a series of objects that are vertically
outlined with the same or very similar layout properties, giving it a sense
of unity. It contains
objects that can optionally be prefixed
with a symbol and/or numbered.
Creates a List with the
as a prefix.
Creates a List with a custom numbering type.
a prefix style
Adds a new
to the bottom of the List.
a new list item
this list.
Adds a new
to the bottom of the List.
textual contents of the new list item
this list.
Customizes the index of the first item in the list.
the custom index, as an int
this list.
Sets the list symbol to be used.
Sets the list symbol to be used. This will create an unordered list, i.e.
all
list items
will be shown with the same prefix.
the textual symbol to be used for all items.
this list.
Sets the list symbol to be used.
Sets the list symbol to be used. This will create an unordered list, i.e.
all
list items
will be shown with the same prefix.
the
object to be used for all items.
this list.
Sets the list symbol to be used.
Sets the list symbol to be used. This will create an unordered list, i.e.
all
list items
will be shown with the same prefix.
the
object to be used for all items.
this list.
Sets the list numbering type to be used.
Sets the list numbering type to be used. This will create an ordered list,
i.e. every
will have a unique prefix.
the
that will generate appropriate prefixes for the
s.
this list.
A specialized enum containing alignment properties for list symbols.
A specialized enum containing alignment properties for list symbols.
means that the items will be aligned as follows:
9. Item 9
10. Item 10
Whereas
means the items will be aligned as follows:
9. Item 9
10. Item 10
the alignment of the list symbols
this element
Gets the indent offset of the
symbols.
the indent offset as a float.
Sets the indent offset of the
symbols.
the new indent offset.
this list.
Gets the piece of text that is added after the
symbol.
the post symbol text
Sets a piece of text that should be added after the
symbol.
the post symbol text
Gets the piece of text that is added before the
symbol.
the pre symbol text
Sets a piece of text that should be added before the
symbol.
the pre symbol text
A list item is a layout element that is one entry in a
.
A list item is a layout element that is one entry in a
. The list
object controls the prefix, postfix, and numbering of the list items.
Creates a ListItem.
Creates a list item with text.
the textual contents of the list item
Customizes the index of the item in the list.
the custom value property of an ordered list's list item.
this listItem.
Creates a list item with an image.
the graphical contents of the list item
Sets the list item symbol to be used.
the textual symbol to be used for the item.
this list item.
Sets the list item symbol to be used.
the
object to be used for the item.
this list item.
Sets the list item symbol to be used.
the
object to be used for the item.
this list.
Sets the list item numbering type to be used.
the
that will generate appropriate prefixes for the
.
this list item.
A layout element that represents a self-contained block of textual and
graphical information.
A layout element that represents a self-contained block of textual and
graphical information.
It is a
which essentially acts as a container for
leaf elements.
Creates a Paragraph.
Creates a Paragraph, initialized with a piece of text.
the initial textual content, as a
Creates a Paragraph, initialized with a piece of text.
the initial textual content, as a
Adds a piece of text to the Paragraph
the content to be added, as a
this Paragraph
Adds a layout element to the Paragraph.
the content to be added, any
this Paragraph
Adds a
of layout elements to the Paragraph.
the content to be added
any
this Paragraph
Adds an unspecified amount of tabstop elements as properties to the Paragraph.
the
tabstop(s)
to be added as properties
this Paragraph
Adds a
of tabstop elements as properties to the Paragraph.
the list of
s to be added as properties
this Paragraph
Removes a tabstop position from the Paragraph, if it is present in the
property.
the
position to be removed.
this Paragraph
Sets the indent value for the first line of the
.
the indent value that must be applied to the first line of
the Paragraph, as a float
this Paragraph
Sets orphans restriction on a
.
an instance of
.
this
instance.
Sets widows restriction on a
.
an instance of
.
this
instance.
Sets the leading value, using the
strategy.
the new leading value
this Paragraph
Sets the leading value, using the
strategy.
the new leading value
this Paragraph
This class represents the empty space from a
to the following
, if any.
This class represents the empty space from a
to the following
, if any. Using this class will not have any effect unless
there are
objects defined for the enveloping element.
A
is a layout element that represents data in a two-dimensional
grid.
A
is a layout element that represents data in a two-dimensional
grid. It is filled with
cells
, ordered in rows and columns.
It is an implementation of
, which means it can be flushed
to the canvas, in order to reclaim memory that is locked up.
Constructs a
Table
with the preferable column widths.
Constructs a
Table
with the preferable column widths.
Since 7.0.2 table layout algorithms were introduced. Auto layout is default, except large tables.
For large table 100% width and fixed layout set implicitly.
Note, the eventual columns width depends on selected layout, table width,
cell's width, cell's min-widths, and cell's max-widths.
Table layout algorithm has the same behaviour as expected for CSS table-layout property,
where
is <colgroup>'s widths.
For more information see
and
.
preferable column widths in points. Values must be greater than or equal to zero,
otherwise it will be interpreted as undefined.
whether parts of the table will be written before all data is added.
Note, large table does not support auto layout, table width shall not be removed.
Constructs a
Table
with the preferable column widths.
Constructs a
Table
with the preferable column widths.
Since 7.0.2 table layout algorithms were introduced. Auto layout is default, except large tables.
For large table 100% width and fixed layout set implicitly.
Note, the eventual columns width depends on selected layout, table width,
cell's width, cell's min-widths, and cell's max-widths.
Table layout algorithm has the same behaviour as expected for CSS table-layout property,
where
is <colgroup>'s widths.
For more information see
and
.
preferable column widths, points and/or percents. Values must be greater than or equal to zero,
otherwise it will be interpreted as undefined.
whether parts of the table will be written before all data is added.
Note, large table does not support auto layout, table width shall not be removed.
Constructs a
Table
with the preferable column widths.
Constructs a
Table
with the preferable column widths.
Since 7.0.2 table layout algorithms were introduced. Auto layout is default.
Note, the eventual columns width depends on selected layout, table width,
cell's width, cell's min-widths, and cell's max-widths.
Table layout algorithm has the same behaviour as expected for CSS table-layout property,
where
is <colgroup>'s widths.
For more information see
and
.
preferable column widths, points and/or percents. Values must be greater than or equal to zero,
otherwise it will be interpreted as undefined.
Constructs a
Table
with the preferable column widths.
Constructs a
Table
with the preferable column widths.
Since 7.0.2 table layout algorithms were introduced. Auto layout is default.
Note, the eventual columns width depends on selected layout, table width,
cell's width, cell's min-widths, and cell's max-widths.
Table layout algorithm has the same behaviour as expected for CSS table-layout property,
where
columnWidths
is <colgroup>'s widths.
For more information see
and
.
preferable column widths in points. Values must be greater than or equal to zero,
otherwise it will be interpreted as undefined.
Constructs a
Table
with specified number of columns.
Constructs a
Table
with specified number of columns.
The final column widths depend on selected table layout.
Since 7.0.2 table layout algorithms were introduced. Auto layout is default, except large tables.
For large table fixed layout set implicitly.
Since 7.1 table will have undefined column widths, that will be determined during layout.
In oder to set equal percent width as column width, use
Note, the eventual columns width depends on selected layout, table width,
cell's width, cell's min-widths, and cell's max-widths.
Table layout algorithm has the same behaviour as expected for CSS table-layout property,
where
columnWidths
is <colgroup>'s widths.
For more information see
and
.
the number of columns, each column will have equal percent width.
whether parts of the table will be written before all data is added.
Note, large table does not support auto layout, table width shall not be removed.
Constructs a
Table
with specified number of columns.
Constructs a
Table
with specified number of columns.
The final column widths depend on selected table layout.
Since 7.0.2 table layout was introduced. Auto layout is default, except large tables.
For large table fixed layout set implicitly.
Since 7.1 table will have undefined column widths, that will be determined during layout.
In oder to set equal percent width as column width, use
Note, the eventual columns width depends on selected layout, table width,
cell's width, cell's min-widths, and cell's max-widths.
Table layout algorithm has the same behaviour as expected for CSS table-layout property,
where
columnWidths
is <colgroup>'s widths.
For more information see
and
.
the number of columns, each column will have equal percent width.
Set fixed layout.
Set fixed layout. Analog of
table-layout:fixed
CSS property.
Note, the table must have width property, otherwise auto layout will be used.
Algorithm description
1. Scan columns for width property and set it. All the rest columns get undefined value.
Column width includes borders and paddings. Columns have set in constructor, analog of
<colgroup>
element in HTML.
2. Scan the very first row of table for width property and set it to undefined columns.
Cell width has lower priority in comparing with column. Cell width doesn't include borders and paddings.
2.1 If cell has colspan and all columns are undefined, each column will get equal width:
width/colspan.
2.2 If some columns already have width, equal remain (original width minus existed) width will be added
remainWidth/colspan
to each column.
3. If sum of columns is less, than table width, there are two options:
3.1. If undefined columns still exist, they will get the rest remaining width.
3.2. Otherwise all columns will be expanded proportionally based on its width.
4. If sum of columns is greater, than table width, nothing to do.
this element.
Set auto layout.
Set auto layout. Analog of
table-layout:auto
CSS property.
Note, large table does not support auto layout.
Algorithm principles.
1. Column width cannot be less, than min-width of any cell in the column (calculated by layout).
2. Specified table width has higher priority, than sum of column and cell widths.
3. Percent value of cell and column width has higher priority, than point value.
4. Cell width has higher priority, than column width.
5. If column has no width, it will try to reach max-value (calculated by layout).
this element.
Set
= 100%.
this element
Returns the column width for the specified column.
index of the column
the width of the column
Returns the number of columns.
the number of columns.
Returns the number of rows.
the number of rows.
Adds a new cell to the header of the table.
Adds a new cell to the header of the table.
The header will be displayed in the top of every area of this table.
See also
.
a header cell to be added
this element
Adds a new cell with received blockElement as a content to the header of the table.
Adds a new cell with received blockElement as a content to the header of the table.
The header will be displayed in the top of every area of this table.
See also
.
an element to be added to a header cell
any IElement
this element
Adds a new cell with received image to the header of the table.
Adds a new cell with received image to the header of the table.
The header will be displayed in the top of every area of this table.
See also
.
an element to be added to a header cell
this element
Adds a new cell with received string as a content to the header of the table.
Adds a new cell with received string as a content to the header of the table.
The header will be displayed in the top of every area of this table.
See also
.
a string to be added to a header cell
this element
Gets the header of the table.
Gets the header of the table. The header is represented as a distinct table and might have its own properties.
table header or
, if
hasn't been called.
Adds a new cell to the footer of the table.
Adds a new cell to the footer of the table.
The footer will be displayed in the bottom of every area of this table.
See also
.
a footer cell
this element
Adds a new cell with received blockElement as a content to the footer of the table.
Adds a new cell with received blockElement as a content to the footer of the table.
The footer will be displayed in the bottom of every area of this table.
See also
.
an element to be added to a footer cell
IElement instance
this element
Adds a new cell with received image as a content to the footer of the table.
Adds a new cell with received image as a content to the footer of the table.
The footer will be displayed in the bottom of every area of this table.
See also
.
an image to be added to a footer cell
this element
Adds a new cell with received string as a content to the footer of the table.
Adds a new cell with received string as a content to the footer of the table.
The footer will be displayed in the bottom of every area of this table.
See also
.
a content string to be added to a footer cell
this element
Gets the footer of the table.
Gets the footer of the table. The footer is represented as a distinct table and might have its own properties.
table footer or
, if
hasn't been called.
Tells you if the first header needs to be skipped (for instance if the
header says "continued from the previous page").
Value of property skipFirstHeader.
Skips the printing of the first header.
Skips the printing of the first header. Used when printing tables in
succession belonging to the same printed table aspect.
New value of property skipFirstHeader.
this element
Tells you if the last footer needs to be skipped (for instance if the
footer says "continued on the next page")
Value of property skipLastFooter.
Skips the printing of the last footer.
Skips the printing of the last footer. Used when printing tables in
succession belonging to the same printed table aspect.
New value of property skipLastFooter.
this element
Sets the table's caption.
Sets the table's caption.
If there is no
set (note that it's an inheritable property),
will be used.
Also the
will be set on the element.
The element to be set as a caption.
this element
Sets the table's caption and its caption side.
Sets the table's caption and its caption side.
Also the
will be set on the element.
The element to be set as a caption.
The caption side to be set on the caption.
this element
Gets the table's caption.
the table's caption.
Starts new row.
Starts new row. This mean that next cell will be added at the beginning of next line.
this element
Adds a new cell to the table.
Adds a new cell to the table. The implementation decides for itself which
row the cell will be placed on.
Cell
to add.
this element
Adds a new cell with received blockElement as a content.
a blockElement to add to the cell and then to the table
IElement instance
this element
Adds a new cell with received image as a content.
an image to add to the cell and then to the table
this element
Adds a new cell with received string as a content.
a string to add to the cell and then to the table
this element
Returns a cell as specified by its location.
Returns a cell as specified by its location. If the cell is in a col-span
or row-span and is not the top left cell, then null is returned.
the row of the cell. indexes are zero-based
the column of the cell. indexes are zero-based
the cell at the specified position.
Creates a renderer subtree with root in the current table element.
Creates a renderer subtree with root in the current table element.
Compared to
, the renderer returned by this method should contain all the child
renderers for children of the current element.
a
subtree for this element
Gets a table renderer for this element.
Gets a table renderer for this element. Note that this method can be called more than once.
By default each element should define its own renderer, but the renderer can be overridden by
method call.
a table renderer for this element
Indicates that all the desired content has been added to this large element and no more content will be added.
Indicates that all the desired content has been added to this large element and no more content will be added.
After this method is called, more precise rendering is activated.
For instance, a table may have a
method set to true,
and in case of large table on
we do not know if any more content will be added,
so we might not place the content in the bottom of the page where it would fit, but instead add a footer, and
place that content in the start of the page. Technically such result would look all right, but it would be
more concise if we placed the content in the bottom and did not start new page. For such cases to be
renderered more accurately, one can call complete() when some content is still there and not flushed.
Writes the newly added content to the document.
Flushes the content which has just been added to the document.
Flushes the content which has just been added to the document.
This is a method for internal usage and is called automatically by the document.
Gets the markup properties of the bottom border of the (current) last row.
an array of
objects
A simple object which holds the row numbers of a section of a table.
Creates a
the start number of the row group, inclusive
the finish number of the row group, inclusive
Gets the starting row number of the table section
the start number of the row group, inclusive
Gets the finishing row number of the table section
the finish number of the row group, inclusive
A TabStop is the closest location on a line of text that the text will jump
to if a
is inserted.
A TabStop is the closest location on a line of text that the text will jump
to if a
is inserted. At least one TabStop must be defined on an
element if you want to use
Tabs.
This object can be added to a
with the method
.
Creates a TabStop at the appropriate position.
a float, measured in points
Creates a TabStop at the appropriate position, with a specified tab
alignment.
Creates a TabStop at the appropriate position, with a specified tab
alignment. A tab alignment defines the way the textual content should be
positioned with regards to this tab stop.
a float, measured in points
a
value
Creates a TabStop at the appropriate position, with a specified tab
alignment and an explicitly given line pattern.
Creates a TabStop at the appropriate position, with a specified tab
alignment and an explicitly given line pattern. A tab alignment defines
the way the textual content should be positioned with regards to this tab
stop. The line pattern defines a pattern that should be repeated until
the TabStop is reached. If null, the space leading up to the TabStop will
be empty.
a float, measured in points
a
value
the
value, a pattern drawing object
A
is a piece of text of any length.
A
is a piece of text of any length. As a
leaf element
,
it is the smallest piece of content that may bear specific layout attributes.
Constructs a Text with its role initialized.
the contents, as a
Gets the contents of the Text object that will be rendered.
the string with the contents
Sets the contents of the Text object.
the new contents
Gets the text rise.
the vertical distance from the text's default base line, as a float.
Sets the text rise.
a vertical distance from the text's default base line.
this Text
Gets the horizontal scaling property, which determines how wide the text
should be stretched.
the horizontal spacing, as a float
Skews the text to simulate italic and other effects.
Skews the text to simulate italic and other effects. Try alpha=0
and beta=12.
the first angle in degrees
the second angle in degrees
this Text
The horizontal scaling parameter adjusts the width of glyphs by stretching or
compressing them in the horizontal direction.
the scaling parameter. 1 means no scaling will be applied,
0.5 means the text will be scaled by half.
2 means the text will be twice as wide as normal one.
this Text
Complex FontSelectorStrategy split text based on
.
Complex FontSelectorStrategy split text based on
.
If unicode script changes, a new font will be found.
If there is no suitable font, only one notdef glyph from
will be added.
Sets preferred font weight
font weight in css notation.
this instance.
Set font style
shall be 'normal', 'italic' or 'oblique'.
this element
Split CSS font-family string into list of font-families or generic-families
Will be moved to styled-xml-parser module in iText 7.2.
Contains all font related data to create
and
.
Contains all font related data to create
and
.
fetches with
.
Note,
and
are not taken into account in
,
the same font with different aliases will have equal FontInfo's,
and therefore the same
in the end document.
Gets path to font, if
was created by String.
Gets path to font, if
was created by String.
Note, to get PostScript or full name, use
.
the font name
Gets font data, if
was created with
byte[].
font data
Gets font alias.
alias if exist, otherwise null.
The default font-family is used by
if it's impossible to select a font for all other set font-families
Creates a new instance of FontProvider
predefined set of fonts, could be null.
Creates a new instance of FontProvider.
Creates a new instance of FontProvider.
default font family.
Creates a new instance of FontProvider
predefined set of fonts, could be null.
default font family.
Gets
.
the fontset
Gets the default font-family
the default font-family
Create
or get from cache.
target font families
instance of
.
an instance of
.
Create
or get from cache.
target font families
instance of
.
set of additional fonts.
an instance of
.
}
Create a new instance of
.
Create a new instance of
. While caching is main responsibility of
.
This method just create a new instance of
.
Set of all available fonts in current context.
target font families
instance of
.
an instance of
.
Get from cache or create a new instance of
.
font info, to create
and
.
cached or new instance of
.
Get from cache or create a new instance of
.
font info, to create
and
.
set of additional fonts to consider.
cached or new instance of
.
Resets
PdfFont cache.
Resets
PdfFont cache
. After calling that method
can be reused with another
Sort given set of fonts according to font name and style.
Create new FontSelector instance.
unsorted set of all available fonts.
sorted list of preferred font families.
instance of
.
The best font match.
The best font match.
If any font from
doesn't contain requested glyphs, this font will be used.
the best matched font
Sorted set of fonts.
sorted set of fonts
This method is used to compare two fonts (the required one which is described by fontInfo and
the one to be examined which is described by fc and fontFamily) and measure their similarity.
This method is used to compare two fonts (the required one which is described by fontInfo and
the one to be examined which is described by fc and fontFamily) and measure their similarity.
The more the fonts are similar the higher the score is.
Firstly we check if the font-family described by fontInfo equals to the required one.
If it's not true the examination fails, it continues otherwise.
If the required font-family is monospace, serif or sans serif we check whether
the font under examination is monospace, serif or sans serif resp. Its font-family is not
taking into considerations.
If font-family is respected, we consider the next font-style characteristics to select the required font
of the respected font-family:
a) bold
b) italic
Key for
caching.
is responsible for splitting text into sub texts with one particular font.
is responsible for splitting text into sub texts with one particular font.
will create next sub text and set current font.
Utility method to create PdfFont.
instance of FontInfo.
cached or just created PdfFont on success, otherwise null.
Reusable font set for FontProgram related data.
Reusable font set for FontProgram related data.
Add and search fonts.
A FontSet instance could be shared for multiple threads.
However FontSet filling is not thread safe operation.
Creates a new instance of
.
Add all the fonts in a directory and possibly its subdirectories.
path to directory.
recursively scan subdirectories if
.
number of added fonts.
Add all the fonts in a directory.
path to directory.
number of added fonts.
Add not supported for auto creating FontPrograms.
Add not supported for auto creating FontPrograms.
Note,
do not taken into account in
.
The same font with different alias will not be replaced.
Alias will replace original font family in font selector algorithm.
FontEncoding for creating
font alias.
sets the specific range of characters to be used from the font
true, if font was successfully added, otherwise false.
Add not supported for auto creating FontPrograms.
Add not supported for auto creating FontPrograms.
Note,
do not taken into account in
.
The same font with different alias will not be replaced.
Alias will replace original font family in font selector algorithm.
FontEncoding for creating
font alias.
true, if font was successfully added, otherwise false.
Add not supported for auto creating FontPrograms.
FontEncoding for creating
.
true, if font was successfully added, otherwise false.
Creates
, fetches
and adds just created
to
.
Creates
, fetches
and adds just created
to
.
Note,
do not taken into account in
.
The same font with different alias will not be replaced.
Alias will replace original font family in font selector algorithm.
path to font data.
preferred font encoding.
font alias, will replace original font family.
sets the specific range of characters to be used from the font
true, if font was successfully added, otherwise false.
Creates
, fetches
and adds just created
to
.
Creates
, fetches
and adds just created
to
.
Note,
do not taken into account in
.
The same font with different alias will not be replaced.
Alias will replace original font family in font selector algorithm.
path to font data.
preferred font encoding.
font alias.
true, if font was successfully added, otherwise false.
Creates
, fetches
and adds just created
to
.
path to font data.
preferred font encoding.
true, if font was successfully added, otherwise false.
Creates
, fetches
and adds just created
to
.
Creates
, fetches
and adds just created
to
.
Note,
do not taken into account in
.
The same font with different alias will not be replaced.
Alias will replace original font family in font selector algorithm.
font data.
preferred font encoding.
font alias.
sets the specific range of characters to be used from the font
true, if font was successfully added, otherwise false.
Creates
, fetches
and adds just created
to
.
Creates
, fetches
and adds just created
to
.
Note,
do not taken into account in
.
The same font with different alias will not be replaced.
Alias will replace original font family in font selector algorithm.
font data.
preferred font encoding.
font alias.
true, if font was successfully added, otherwise false.
Creates
, fetches
and adds just created
to
.
font data.
preferred font encoding.
true, if font was successfully added, otherwise false.
Creates
, fetches
and adds just created
to
.
Creates
, fetches
and adds just created
to
.
will be used to determine encoding.
path to font data.
true, if font was successfully added, otherwise false.
Creates
, fetches
and adds just created
to
.
Creates
, fetches
and adds just created
to
.
will be used to determine encoding.
font data.
true, if font was successfully added, otherwise false.
Adds
with alias.
Adds
with alias. Could be used to fill temporary font set.
Note,
do not taken into account in
.
The same font with different alias will not be replaced.
Alias will replace original font family in font selector algorithm.
font info.
font alias.
sets the specific range of characters to be used from the font
true, if font was successfully added, otherwise false.
Adds
with alias.
Adds
with alias. Could be used to fill temporary font set.
Note,
do not taken into account in
.
The same font with different alias will not be replaced.
Alias will replace original font family in font selector algorithm.
font info.
font alias.
true, if font was successfully added, otherwise false.
Adds
.
Adds
. Could be used to fill temporary font set.
Note,
do not taken into account in
.
The same font with different alias will not be replaced.
font info.
true, if font was successfully added, otherwise false.
Search in existed fonts for PostScript name or full font name.
Search in existed fonts for PostScript name or full font name.
Note, this method has O(n) complexity.
PostScript or full name.
true, if
contains font with given name.
Search in existed fonts for PostScript name or full font name.
Search in existed fonts for PostScript name or full font name.
Note, this method has O(n) complexity.
PostScript or full name.
Collection of
from set of fonts with given PostScript or full name.
Gets available fonts.
Gets available fonts.
Note, the collection is unmodifiable.
set of all available fonts
Gets union of available and temporary fonts.
Gets union of available and temporary fonts.
Note, the collection is unmodifiable.
set of temporary fonts
set of all available and temporary fonts
Returns
if this set contains no elements.
if this set contains no elements
Returns the number of elements in this set.
the number of elements in this set
Ordered range for
.
Ordered range for
.
To create a custom Range instance
shall be used.
Binary search over ordered segments.
numeric character reference based on the character's Unicode code point
true if this Range contains the specified code point, otherwise false
Order ranges.
Order ranges. Replace with a union of ranges in case of overlap.
Unsorted list of sub-ranges.
ordered and normalized sub-ranges.
Builder of
.
Default Range instance.
Range that contains any integer
Default constructor with empty range.
Constructor with a single range.
low boundary of the range
high boundary of the range
Constructor with a single number.
a single number
Constructor with a single range.
low boundary of the range
high boundary of the range
Constructor with a single char.
a single char
Add one more range.
low boundary of the range
high boundary of the range
this RangeBuilder
Add one more range.
low boundary of the range
high boundary of the range
this RangeBuilder
Add range with a single number.
a single number
this RangeBuilder
Add range with a single char.
a single char
this RangeBuilder
This class implements a simple byte vector with access to the
underlying array.
This class implements a simple byte vector with access to the
underlying array.
This work was authored by Carlos Villegas (cav@uniscope.co.jp).
Capacity increment size
The encapsulated array
Points to next free item
Construct byte vector instance with default block size.
Construct byte vector instance.
initial block size
Construct byte vector instance.
byte array to use
TODO should n should be initialized to a.length to be consistent with
CharVector behavior? [GA]
Construct byte vector instance.
byte array to use
initial block size
TODO should n should be initialized to a.length to be consistent with
CharVector behavior? [GA]
Obtain byte vector array.
byte array
Obtain number of items in array.
number of items
Obtain capacity of array.
current capacity of array
Pet byte at index.
the index
a byte
Get byte at index.
the index
a byte
This is to implement memory allocation in the array.
This is to implement memory allocation in the array. Like malloc().
to allocate
previous length
Trim byte vector to current length.
This class implements a simple char vector with access to the
underlying array.
This class implements a simple char vector with access to the
underlying array.
This work was authored by Carlos Villegas (cav@uniscope.co.jp).
Capacity increment size
The encapsulated array
Points to next free item
Construct char vector instance with default block size.
Construct char vector instance.
initial block size
Construct char vector instance.
char array to use
Construct char vector instance.
char array to use
initial block size
Copy constructor
the CharVector that should be cloned
Reset length of vector, but don't clear contents.
Obtain char vector array.
char array
Obtain number of items in array.
number of items
Obtain capacity of array.
current capacity of array
Pet char at index.
the index
a char
Get char at index.
the index
a char
This is to implement memory allocation in the array.
This is to implement memory allocation in the array. Like malloc().
to allocate
previous length
Trim char vector to current length.
Represents a hyphen.
pre break string
no break string
post break string
Construct a hyphen.
break string
break string
break string
Construct a hyphen.
break string
This class represents a hyphenated word.
This class represents a hyphenated word.
This work was authored by Carlos Villegas (cav@uniscope.co.jp).
number of hyphenation points in word
rawWord as made of alternating strings and
Hyphen
instances
the number of hyphenation points in the word
an index position
the pre-break text, not including the hyphen character
an index position
the post-break text
the hyphenation points
This is the class used to configure hyphenation on layout level
The Hyphenator object.
The hyphenation symbol used when hyphenating.
Constructs a new
.
Constructs a new
. No language hyphenation files will be used.
Only soft hyphen symbols ('\u00ad') will be taken into account.
the minimum number of characters before the hyphenation point
the minimum number of characters after the hyphenation point
Constructs a new
by a
which will be used to
find hyphenation points.
the
instance
Constructs a new
instance.
the language
the optional country code (may be null or "none")
the minimum number of characters before the hyphenation point
the minimum number of characters after the hyphenation point
Hyphenates a given word.
object representing possible hyphenation points
or
if no hyphenation points are found.
Tee word to hyphenate
Gets the hyphenation symbol.
the hyphenation symbol
Sets the hyphenation symbol to the specified value.
the new hyphenation symbol
A hyphenation exception.
A hyphenation exception.
This work was authored by Carlos Villegas (cav@uniscope.co.jp).
Construct a hyphenation exception.
a message string
This tree structure stores the hyphenation patterns in an efficient
way for fast lookup.
This tree structure stores the hyphenation patterns in an efficient
way for fast lookup. It provides the provides the method to
hyphenate a word.
This work was authored by Carlos Villegas (cav@uniscope.co.jp).
value space: stores the interletter values
This map stores hyphenation exceptions
This map stores the character classes
Temporary map to store interletter values on pattern loading.
Default constructor.
Packs the values by storing them in 4 bits, two values into a byte
Values range is from 0 to 9.
Packs the values by storing them in 4 bits, two values into a byte
Values range is from 0 to 9. We use zero as terminator,
so we'll add 1 to the value.
a string of digits from '0' to '9' representing the
interletter values.
the index into the vspace array where the packed values
are stored.
Unpack values.
an integer
a string
Read hyphenation patterns from an XML file.
the filename
Read hyphenation patterns from an XML file.
the InputSource for the file
unique key representing country-language combination
Find pattern.
a pattern
a string
String compare, returns 0 if equal or
t is a substring of s.
first character array
starting index into first array
second character array
starting index into second array
an integer
Get values.
an integer
a byte array
Search for all possible partial matches of word starting
at index an update interletter values.
Search for all possible partial matches of word starting
at index an update interletter values. In other words, it
does something like:
for(i=0; i<patterns.length; i++) {
if ( word.substring(index).startsWidth(patterns[i]) )
update_interletter_values(patterns[i]);
}
But it is done in an efficient way since the patterns are
stored in a ternary tree. In fact, this is the whole purpose
of having the tree: doing this search without having to test
every single pattern. The number of patterns for languages
such as English range from 4000 to 10000. Thus, doing thousands
of string comparisons for each word to hyphenate would be
really slow without the tree. The tradeoff is memory, but
using a ternary tree instead of a trie, almost halves the
the memory used by Lout or TeX. It's also faster than using
a hash table
null terminated word to match
start index from word
interletter values array to update
Hyphenate word and return a Hyphenation object.
the word to be hyphenated
Minimum number of characters allowed
before the hyphenation point.
Minimum number of characters allowed after
the hyphenation point.
a
Hyphenation
object representing
the hyphenated word or null if word is not hyphenated.
Hyphenate word and return an array of hyphenation points.
char array that contains the word
Offset to first character in word
Length of word
Minimum number of characters allowed
before the hyphenation point.
Minimum number of characters allowed after
the hyphenation point.
a
Hyphenation
object representing
the hyphenated word or null if word is not hyphenated.
Add a character class to the tree.
Add a character class to the tree. It is used by
PatternParser
as callback to
add character classes. Character classes define the
valid word characters for hyphenation. If a word contains
a character not defined in any of the classes, it is not hyphenated.
It also defines a way to normalize the characters in order
to compare them with the stored patterns. Usually pattern
files use only lower case characters, in this case a class
for letter 'a', for example, should be defined as "aA", the first
character being the normalization char.
a character class (group)
Add an exception to the tree.
Add an exception to the tree. It is used by
PatternParser
class as callback to
store the hyphenation exceptions.
normalized word
a vector of alternating strings and
hyphen
objects.
Add a pattern to the tree.
Add a pattern to the tree. Mainly, to be used by
PatternParser
class as callback to
add a pattern to the tree.
the hyphenation pattern
interletter weight values indicating the
desirability and priority of hyphenating at a given point
within the pattern. It should contain only digit characters.
(i.e. '0' to '9').
This is a cache for HyphenationTree instances.
Contains the cached hyphenation trees
Used to avoid multiple error messages for the same language if a pattern file is missing.
Looks in the cache if a hyphenation tree is available and returns it if it is found.
the language
the country (may be null or "none")
the HyhenationTree instance or null if it's not in the cache
Constructs the key for the hyphenation pattern file.
the language
the country (may be null or "none")
the resulting key
If the user configured a hyphenation pattern file name
for this (lang,country) value, return it.
If the user configured a hyphenation pattern file name
for this (lang,country) value, return it. If not, return null.
the language
the country (may be null or "none")
the map of user-configured hyphenation pattern file names
the hyphenation pattern file name or null
Cache a hyphenation tree under its key.
the key (ex. "de_CH" or "en")
the hyphenation tree
Notes a key to a hyphenation tree as missing.
Notes a key to a hyphenation tree as missing.
This is to avoid searching a second time for a hyphenation pattern file which is not
available.
the key (ex. "de_CH" or "en")
Indicates whether a hyphenation file has been requested before but it wasn't available.
Indicates whether a hyphenation file has been requested before but it wasn't available.
This is to avoid searching a second time for a hyphenation pattern file which is not
available.
the key (ex. "de_CH" or "en")
true if the hyphenation tree is unavailable
This class is the main entry point to the hyphenation package.
This class is the main entry point to the hyphenation package.
You can use only the static methods or create an instance.
This work was authored by Carlos Villegas (cav@uniscope.co.jp).
Logging instance.
Creates a new hyphenator.
the language
the optional country code (may be null or "none")
the minimum number of characters before the hyphenation point
the minimum number of characters after the hyphenation point
Creates a new hyphenator.
the language
the optional country code (may be null or "none")
the map with user-configured hyphenation pattern file names
the minimum number of characters before the hyphenation point
the minimum number of characters after the hyphenation point
Registers additional file directories.
directory to register
Returns the default hyphenation tree cache.
the default (static) hyphenation tree cache
Clears the default hyphenation tree cache.
Clears the default hyphenation tree cache. This method can be used if the underlying data files are changed at runtime.
Returns a hyphenation tree for a given language and country,
with fallback from (lang,country) to (lang).
Returns a hyphenation tree for a given language and country,
with fallback from (lang,country) to (lang).
The hyphenation trees are cached.
the language
the country (may be null or "none")
the map with user-configured hyphenation pattern file names
the hyphenation tree
Returns a hyphenation tree for a given language and country.
Returns a hyphenation tree for a given language and country. The hyphenation trees are cached.
the language
the country (may be null or "none")
the map with user-configured hyphenation pattern file names
the hyphenation tree
Load tree from xml file using configuration settings.
the directory to search the file into
language key for the requested hyphenation file
the requested HyphenationTree or null if it is not available
Load tree from the stream.
the input stream to load the tree from
unique key representing country-language combination
the requested HyphenationTree or null if it is not available
Hyphenates a word.
the language
the optional country code (may be null or "none")
the map with user-configured hyphenation pattern file names
the word to hyphenate
the minimum number of characters before the hyphenation point
the minimum number of characters after the hyphenation point
the hyphenation result
Hyphenates a word.
the language
the optional country code (may be null or "none")
the word to hyphenate
the minimum number of characters before the hyphenation point
the minimum number of characters after the hyphenation point
the hyphenation result
Hyphenates a word.
the word to hyphenate
the hyphenation result
This interface is used to connect the XML pattern file parser to
the hyphenation tree.
This interface is used to connect the XML pattern file parser to
the hyphenation tree.
This work was authored by Carlos Villegas (cav@uniscope.co.jp).
Add a character class.
Add a character class.
A character class defines characters that are considered
equivalent for the purpose of hyphenation (e.g. "aA"). It
usually means to ignore case.
character group
Add a hyphenation exception.
Add a hyphenation exception. An exception replaces the
result obtained by the algorithm for cases for which this
fails or the user wants to provide his own hyphenation.
A hyphenatedword is a vector of alternating String's and
Hyphen
instances
word to add as an exception
pre-hyphenated word
Add hyphenation patterns.
the pattern
interletter values expressed as a string of
digit characters.
Construct a pattern parser.
Construct a pattern parser.
a pattern consumer
Parses a hyphenation pattern file.
the filename
Parses a hyphenation pattern file.
the InputStream for the file
unique key representing country-language combination
Ternary Search Tree.
Ternary Search Tree.
A ternary search tree is a hybrid between a binary tree and
a digital search tree (trie). Keys are limited to strings.
A data value of type char is stored in each leaf node.
It can be used as an index (or pointer) to the data.
Branches that only contain one key are compressed to one node
by storing a pointer to the trailer substring of the key.
This class is intended to serve as base class or helper class
to implement Dictionary collections or the like. Ternary trees
have some nice properties as the following: the tree can be
traversed in sorted order, partial matches (wildcard) can be
implemented, retrieval of all keys within a given distance
from the target, etc. The storage requirements are higher than
a binary tree but a lot less than a trie. Performance is
comparable with a hash table, sometimes it outperforms a hash
function (most of the time can determine a miss faster than a hash).
The main purpose of this java port is to serve as a base for
implementing TeX's hyphenation algorithm (see The TeXBook,
appendix H). Each language requires from 5000 to 15000 hyphenation
patterns which will be keys in this tree. The strings patterns
are usually small (from 2 to 5 characters), but each char in the
tree is stored in a node. Thus memory usage is the main concern.
We will sacrify 'elegance' to keep memory requirements to the
minimum. Using java's char type as pointer (yes, I know pointer
it is a forbidden word in java) we can keep the size of the node
to be just 8 bytes (3 pointers and the data char). This gives
room for about 65000 nodes. In my tests the english patterns
took 7694 nodes and the german patterns 10055 nodes,
so I think we are safe.
All said, this is a map with strings as keys and char as value.
Pretty limited!. It can be extended to a general map by
using the string representation of an object and using the
char value as an index to an array that contains the object
values.
This work was authored by Carlos Villegas (cav@uniscope.co.jp).
Pointer to low branch and to rest of the key when it is
stored directly in this node, we don't have unions in java!
Pointer to high branch.
Pointer to equal branch and to data when this node is a string terminator.
The character stored in this node: splitchar.
The character stored in this node: splitchar.
Two special values are reserved:
- 0x0000 as string terminator
- 0xFFFF to indicate that the branch starting at
this node is compressed
This shouldn't be a problem if we give the usual semantics to
strings since 0xFFFF is garanteed not to be an Unicode character.
This vector holds the trailing of the keys when the branch is compressed.
root
free node
number of items in tree
allocation size for arrays
default constructor
initialize
Branches are initially compressed, needing
one node per key plus the size of the string
key.
Branches are initially compressed, needing
one node per key plus the size of the string
key. They are decompressed as needed when
another key with same prefix
is inserted. This saves a lot of space,
specially for long keys.
the key
a value
Insert key.
the key
offset into key array
a value
The actual insertion function, recursive version.
The actual insertion function, recursive version.
PLEASE NOTE that the implementation has been adapted to consume less stack memory
Compares 2 null terminated char arrays
a character array
an index into character array
a character array
an index into character array
an integer
Compares a string with null terminated char array
a string
a character array
an index into character array
an integer
a character array
an index into character array
a character array
an index into character array
a character array
an index into character array
an integer
a character array
an integer
Find key.
the key
result
Find key.
the key
offset into key array
result
a key
trye if key present
length
Recursively insert the median first and then the median of the
lower and upper halves, and so on in order to get a balanced
tree.
Recursively insert the median first and then the median of the
lower and upper halves, and so on in order to get a balanced
tree. The array of keys is assumed to be sorted in ascending
order.
array of keys
array of values
where to insert
count to insert
Balance the tree for best search performance
Each node stores a character (splitchar) which is part of
some key(s).
Each node stores a character (splitchar) which is part of
some key(s). In a compressed branch (one that only contain
a single string key) the trailer of the key which is not
already in nodes is stored externally in the kv array.
As items are inserted, key substrings decrease.
Some substrings may completely disappear when the whole
branch is totally decompressed.
The tree is traversed to find the key substrings actually
used. In addition, duplicate substrings are removed using
a map (implemented with a TernaryTree!).
the keys
An object that iterates over the
.
current node index
current key
parent
child
default constructor
Construct item.
a char
a char
Node stack
key stack implemented with a StringBuffer
default constructor
Resets the Iterator to its initial state.
next element
value
true if more elements
traverse upwards
traverse the tree to find next key
A generic Map-like interface that defines methods for storing and retrieving
objects by an enum key of the
type.
Checks if this entity has the specified property.
Checks if this entity has the specified property. Compared to
,
this method can check parent's properties, styles, etc, depending on the origin of the instance
the property to be checked
if this instance has given property,
otherwise
Checks if this entity has the specified property, i.e. if it was set to this very element earlier
the property to be checked
if this instance has given own property,
otherwise
Gets the property from this entity.
Gets the property from this entity. Compared to
,
this method can check parent's properties, styles, etc, depending on the origin of the instance
the return type associated with the property
the property to be retrieved
the value of the given property.
will be returned if the property value was not found
Gets own property from this entity.
Gets own property from this entity. The property must have been set earlier to this entity.
If the property is not found,
will be returned.
the return type associated with the property
the property to be retrieved
the value of the given own property.
will be returned if the property value was not found
Gets the default property from this entity.
the return type associated with the property
the property to be retrieved
the default property value. If the default property is not defined,
will be returned
Sets a property for this entity.
the property to be set
the value of the property
Deletes the own property of this entity.
the property to be deleted
Represents the area for content
layouting.
The number of page on which the area is located.
The area's bounding box
Creates the area for content
layouting.
the number of page on which the area is located.
the area's bounding box
Gets the number of page on which the area is located.
page number
Gets the
box
which bounds the area.
the bounding box
Sets the
box
which bounds the area.
the area's bounding box
Creates a "deep copy" of this LayoutArea, meaning the object returned by this method will be independent
of the object being cloned.
the copied LayoutArea.
Represents the context for content
layouting.
The
area
the content to be placed on.
Indicates whether the height is clipped or not.
Gets the
area
the content to be placed on.
the area for content layouting.
Indicates whether the layout area's height is clipped or not.
whether the layout area's height is clipped or not.
Defines whether the layout area's height is clipped or not.
indicates whether the height is clipped or not.
We use a simplified version of CSS positioning.
We use a simplified version of CSS positioning.
See https://www.webkit.org/blog/117/webcore-rendering-iv-absolutefixed-and-relative-positioning
Default positioning by normal rules of block and line layout.
Relative positioning is exactly like static positioning except that the left, top, right and bottom properties
can be used to apply a translation to the object.
Relative positioning is exactly like static positioning except that the left, top, right and bottom properties
can be used to apply a translation to the object. Relative positioning is literally nothing more than a paint-time translation.
As far as layout is concerned, the object is at its original position.
Absolute positioned objects are positioned relative to the containing block, which is the nearest enclosing
ancestor block with a position other than 'static'.
Fixed positioned objects are positioned relative to the viewport, i.e., the page area of the current page.
Represents the result of content
layouting.
The status of
which indicates that the content was fully placed.
The status of
which indicates that the content was placed partially.
The status of
which indicates that the content was not placed.
The status of
which indicates whether the content was added or not
and, if yes, was it added fully or partially.
The area occupied by the content during its
layouting.
The area occupied by the content during its
layouting.
which indicates whether the content was added or not and, if yes, was it added fully or partially.
The split renderer created during
layouting.
The split renderer created during
layouting.
This renderer will be used to draw the splitted part of content.
The overflow renderer created during
layouting.
The overflow renderer created during
layouting.
This renderer will be used to draw the overflowed part of content.
The first renderer to produce
during
.
Creates the
result of
layouting
}.
Creates the
result of
layouting
}.
The
will be set as null.
the status of
the area occupied by the content
the renderer to draw the splitted part of the content
the renderer to draw the overflowed part of the content
Creates the
result of
layouting
}.
the status of
the area occupied by the content
the renderer to draw the splitted part of the content
the renderer to draw the overflowed part of the content
the first renderer to produce
Gets the status of
.
the status
Sets the status of
.
the status of
Gets the
layout area
occupied by the content during
layouting.
the
layout area
occupied by the content
Gets the split
renderer
created during
layouting.
the
renderer
Sets the split
renderer.
the renderer to draw the splitted part of the content
Gets the overflow renderer created during
layouting.
the
renderer
Sets the overflow
renderer.
the renderer to draw the overflowed part of the content
Gets the first renderer to produce
during
the
renderer
Represents the context for content of a line
layouting.
Specifies whether some floating element within the same paragraph has already completely overflowed to the next
page.
true if floating element has already overflowed to the next page, false otherwise.
Changes the value of property specified by
.
true if some floating element already completely overflowed.
this
instance.
Gets the indent of text in the beginning of the current line.
the indent of text in this line.
Sets the indent of text in the beginning of the current line.
the indent of text in this line.
this
instance.
Represents the result of a line
layouting.
Indicates whether split was forced by new line symbol or not.
Creates the
result of
layouting
}.
Creates the
result of
layouting
}.
The
will be set as null.
the status of
the area occupied by the content
the renderer to draw the splitted part of the content
the renderer to draw the overflowed part of the content
Creates the
result of
layouting
}.
the status of
the area occupied by the content
the renderer to draw the splitted part of the content
the renderer to draw the overflowed part of the content
the first renderer to produce
Indicates whether split was forced by new line symbol in rendered text.
Indicates whether split was forced by new line symbol in rendered text.
The value will be set as true if, for example,
the rendered text of one of the child renderers contains '\n' symbol.
whether split was forced by new line or not
Sets
indicates that split was forced by new line symbol in rendered text.
this layout result
the setting was applied on.
Represents the result of content
layouting.
Indicates whether the area already has some placed content or not.
Indicates whether the area already has some placed content or not.
whether the area is empty or not
Defines whether the area already has some placed content or not.
indicates whether the area already has some placed content or not.
Creates a "deep copy" of this RootLayoutArea, meaning the object returned by this method will be independent
of the object being cloned.
Creates a "deep copy" of this RootLayoutArea, meaning the object returned by this method will be independent
of the object being cloned.
Note that although the return type of this method is
,
the actual type of the returned object is
.
the copied RootLayoutArea.
Represents the result of a text
layout.
Indicates whether some word was splitted during
layout.
Indicates whether split was forced by new line symbol in text or not.
Creates the
result of
layouting
}.
Creates the
result of
layouting
}.
The
will be set as null.
the status of
the area occupied by the content
the renderer to draw the splitted part of the content
the renderer to draw the overflowed part of the content
Creates the
result of
layouting
}.
the status of
the area occupied by the content
the renderer to draw the splitted part of the content
the renderer to draw the overflowed part of the content
the first renderer to produce
Indicates whether some word in a rendered text was splitted during
layout.
Indicates whether some word in a rendered text was splitted during
layout.
The value will be set as true if, for example, the rendered words width is bigger than the width of layout area.
whether some word was splitted or not.
Sets
indicates that some word was splitted during
layout.
this layout result
the setting was applied on
Indicates whether split was forced by new line symbol in rendered text.
Indicates whether split was forced by new line symbol in rendered text.
The value will be set as true if, for example, the rendered text contains '\n' symbol.
This value can also be true even if the text was fully placed, but had line break at the end.
whether split was forced by new line or not.
Sets
indicates that split was forced by new line symbol in rendered text.
this layout result
the setting was applied on.
Creates a "deep copy" of this MarginsCollapse, meaning the object returned by this method will be independent
of the object being cloned.
the copied MarginsCollapse.
Rules of the margins collapsing are taken from Mozilla Developer Network:
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing
See also:
https://www.w3.org/TR/CSS2/box.html#collapsing-margins
This method shall be called after child occupied area is included into parent occupied area.
available area for child and its siblings layout. It might be adjusted inside the method
Class for min-max-width of rotated elements.
Class for min-max-width of rotated elements.
Also contains heuristic methods for it calculation based on the assumption that area of element stays the same
when we try to layout it with different available width (available width is between min-width and max-width).
Create new instance
min-width of rotated element
max-width of rotated element
the width of not rotated element, that will have min-width after rotation
the width of not rotated element, that will have max-width after rotation
the height of rotated element, that have min-width as its rotated width
the height of rotated element, that have min-width as its rotated width
Heuristic method, based on the assumption that area of element stays the same, when we try to
layout it with different available width (available width is between min-width and max-width).
rotation angle in radians
the constant area
NOT rotated element min-max-width
possible min-max-width of element after rotation
Heuristic method, based on the assumption that area of element stays the same, when we try to
layout it with different available width (available width is between min-width and max-width).
rotation angle in radians
the constant area
NOT rotated element min-max-width
the maximum width of area the element will occupy after rotation.
possible min-max-width of element after rotation
Utility method for calculating rotated width of area in a similar way to other calculations in this class.
the initial area
the rotation angle in radians
width of rotated area
This method use derivative of function defined on interval: [xMin, xMax] to find its local minimum and maximum.
This method use derivative of function defined on interval: [xMin, xMax] to find its local minimum and maximum.
It also calculate other handy values needed for the creation of
.
the
of this instance is used as analysed function
the smallest possible value of function argument
the biggest possible value of function argument
the calculated
Class that represents functions used, for calculation of width of element after rotation
based on it's NOT rotated width and assumption, that area of element stays the same when
we try to layout it with different available width.
Class that represents functions used, for calculation of width of element after rotation
based on it's NOT rotated width and assumption, that area of element stays the same when
we try to layout it with different available width.
Contains handy methods for function analysis.
Create new instance
rotation angle in radians
the constant area
Function used for width calculations of rotated element.
Function used for width calculations of rotated element. This function is continuous on interval: (0, Infinity)
width value of NOT rotated element
width of rotated element
Function used for height calculations of rotated element.
Function used for height calculations of rotated element. This function is continuous on interval: (0, Infinity)
width value of NOT rotated element
width of rotated element
Get's possible values of NOT rotated width of all element that have therer rotated width less that availableWidth
the highest possible width of rotated element.
interval that specify biggest and smallest possible values of NOT rotated width of such elements.
Gets the argument of
that results in zero derivative.
Gets the argument of
that results in zero derivative.
In case we have
== 0
or
== 0
the function doesn't have
zero derivative on defined interval, but value returned by this method fits well in the calculations above.
the argument of
that results in zero derivative
The possible values for the type of break
that is executed by an
.
A specialized class holding configurable properties related to an
's background.
A specialized class holding configurable properties related to an
's background. This class is meant to be used as the value for the
key in an
. Allows
to define a background color, and positive or negative changes to the
location of the edges of the background coloring.
Creates a background with a specified color.
the background color
Creates a background with a specified color and opacity.
the background color
the opacity of the background color; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
Creates a background with a specified color, and extra space that
must be counted as part of the background and therefore colored.
Creates a background with a specified color, and extra space that
must be counted as part of the background and therefore colored.
These values are allowed to be negative.
the background color
extra coloring to the left side
extra coloring at the top
extra coloring to the right side
extra coloring at the bottom
Creates a background with a specified color, and extra space that
must be counted as part of the background and therefore colored.
Creates a background with a specified color, and extra space that
must be counted as part of the background and therefore colored.
These values are allowed to be negative.
the background color
the opacity of the background color; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
extra coloring to the left side
extra coloring at the top
extra coloring to the right side
extra coloring at the bottom
Gets the background's color.
a
of any supported kind
Gets the opacity of the background.
a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
Gets the extra space that must be filled to the left of the Element.
a float value
Gets the extra space that must be filled to the right of the Element.
a float value
Gets the extra space that must be filled at the top of the Element.
a float value
Gets the extra space that must be filled at the bottom of the Element.
a float value
A specialized enum holding the possible values
for a text
's base direction.
A specialized enum holding the possible values
for a text
's base direction.
This class is meant to be used as the value
for the
key in an
.
A specialized enum containing potential property values for
.
Represents a border radius.
The horizontal semi-major axis of the ellipse to use for the border in that corner.
The vertical semi-major axis of the ellipse to use for the border in that corner.
Creates a
border radius
with given value.
the radius
Creates a
border radius
with a given point value.
the radius
Creates a
border radius
with given horizontal and vertical values.
the horizontal radius of the corner
the vertical radius of the corner
Creates a
border radius
with given horizontal and vertical point values.
the horizontal radius of the corner
the vertical radius of the corner
Gets the horizontal radius of the
border's
corner.
the horizontal radius
Gets the vertical radius of the
border's
corner.
the vertical radius
A specialized enum containing potential property values for
.
A specialized enum containing the potential caption side values
for a
's caption.
A specialized enum containing potential property values for
.
A specialized enum containing potential property values for
.
A specialized enum holding the possible values
for a text
's kerning property.
A specialized enum holding the possible values
for a text
's kerning property.
This class is meant to be used as the value for the
key
in an
.
A specialized enum containing potential property values for
.
Interface for implementing custom symbols for lists
Creates symbol.
- the positive (greater then zero) index of list item in list.
- the
with all properties of corresponding list.
- the
with all properties of corresponding list item.
the
representing symbol.
A specialized class that specifies the leading, "the vertical distance between
the baselines of adjacent lines of text" (ISO-32000-1, section 9.3.5).
A specialized class that specifies the leading, "the vertical distance between
the baselines of adjacent lines of text" (ISO-32000-1, section 9.3.5).
Allows to use either an absolute (constant) leading value, or one
determined by font size. Pronounce as 'ledding' (cfr. Led Zeppelin).
This class is meant to be used as the value for the
key in an
.
A leading type independent of font size.
A leading type related to the font size and the resulting bounding box.
Creates a Leading object.
a constant type that defines the calculation of actual
leading distance. Either
or
to be used as a basis for the leading calculation.
Gets the calculation type of the Leading object.
the calculation type. Either
or
Gets the value to be used as the basis for the leading calculation.
a calculation value
A property corresponding to the css line-height property and used to
set the height of a line box in the HTML mode.
A property corresponding to the css line-height property and used to
set the height of a line box in the HTML mode. On block-level elements,
it specifies the minimum height of line boxes within the element.
On non-replaced inline elements, it specifies the height that is used to calculate line box height.
Returns the line height value.
Returns the line height value.
The meaning of the returned value depends on the type of line height.
the
value.
Creates a
with a fixed value.
value to set
created
object
Creates a
with multiplied value.
Creates a
with multiplied value.
This value must be multiplied by the element's font size.
value to set
created
object
Creates a normal
.
created
object
Check if the
contains fixed value.
true if
contains fixed value.
Check if the
contains multiplied value.
true if
contains multiplied value.
Check if the
contains normal value.
true if
is normal.
A specialized enum holding the possible values
for a list
's entry prefix.
A specialized enum holding the possible values
for a list
's entry prefix.
This class is meant to be used as the value for the
key
in an
.
Zapfdingbats font characters in range [172; 181]
Zapfdingbats font characters in range [182; 191]
Zapfdingbats font characters in range [192; 201]
Zapfdingbats font characters in range [202; 221]
A specialized enum containing alignment properties for list symbols.
A specialized enum containing alignment properties for list symbols.
means that the items will be aligned as follows:
9. Item 9
10. Item 10
Whereas
means the items will be aligned as follows:
9. Item 9
10. Item 10
The possible values for the type of overflow of
.
A specialized class holding configurable parameters related to
's
orphans restrictions.
A specialized class holding configurable parameters related to
's
orphans restrictions. This class is meant to be used as the value for the
key.
Creates a
instance with a specified orphans limitation.
minimal number of paragraph's lines to remain on an area before an area break.
Sets parameter that defines orphans restrictions.
minimal number of paragraph's lines to remain on an area before an area break.
this
instance
Gets minimal number of paragraph's lines to remain on an area before a split.
minimal number of paragraph's lines to remain on an area before an area break.
Writes a log message reporting that orphans constraint is violated.
Writes a log message reporting that orphans constraint is violated.
This method is to be overridden if violation scenarios need to be handled in some other way.
a renderer processing orphans
explaining the reason for violation
A specialized class holding configurable parameters related to
's
widows restrictions.
A specialized class holding configurable parameters related to
's
widows restrictions. This class is meant to be used as the value for the
key.
Creates a
instance with specified widows restrictions.
minimal number of paragraph's lines to be overflowed to the next area.
a number of lines that are allowed to be moved to the next area
in order to fix widows constraint violation.
defines whether the entire paragraph should be pushed to the next area
if widows constraint is violated and cannot be automatically fixed.
Sets parameters that define widows restrictions and conditions of handling cases of widows constraint violation.
minimal number of paragraph's lines to be overflowed to the next area.
a number of lines that are allowed to be moved to the next area
in order to fix widows constraint violation.
defines whether paragraph should be completely pushed to the next area
if widows constraint is violated and cannot be automatically fixed.
this
instance.
Gets minimal number of paragraph's lines to be overflowed to the next area.
minimal number of paragraph's lines to be overflowed to the next area
Gets a number of lines that are allowed to be moved to the next area in order to fix
widows constraint violation.
a number of lines that are allowed to be moved to the next are
Indicates whether paragraph should be completely pushed to the next area if widows constraint is violated and
cannot be automatically fixed.
true if paragraph should be completely pushed to the next area if widows constraint is violated and
cannot be automatically fixed, otherwise - false
Writes a log message reporting that widows constraint is violated and cannot be automatically fixed.
Writes a log message reporting that widows constraint is violated and cannot be automatically fixed.
This method is to be overridden if violation scenarios need to be handled in some other way.
a renderer processing widows
explaining the reason for violation
An enum of property names that are used for graphical properties of layout
elements.
An enum of property names that are used for graphical properties of layout
elements. The
performs the same function as an
, with the values of
as its potential keys.
Font family as String or PdfFont shall be set.
String value.
String value. 'normal'|'italic'|'oblique'
Note, this property will be applied only if
has String[] value.
String value.
String value. 'normal'|'bold'|number
Note, this property will be applied only if
has String[] value.
Shall be instance of
Shall be instance of
.
Value of 1 is equivalent to no scaling
Use values from
.
Value of 1 is equivalent to no scaling
Some properties must be passed to
objects that
are lower in the document's hierarchy.
Some properties must be passed to
objects that
are lower in the document's hierarchy. Most inherited properties are
related to textual operations. Indicates whether or not this type of property is inheritable.
This method checks whether a Property, in order to be picked up by the
rendering engine, must be defined on the current element or renderer
(return false), or may be defined in one of its parent
elements or renderers (return true).
the ID, defined in this class, of the property to check
whether the property type is inheritable
Enum of rendering modes that can be used in layout logic.
Default object layout mode
Mode in which objects are processed in accordance with the HTML documentation
A specialized enum holding the possible values for a
Tab
's alignment.
A specialized enum containing potential property values for
.
This class is used to store and process multiple
transform
css property before drawing.
Creates a new
instance.
the amount of
instances that this
instant shall contain and be able to process
Adds a
in a list of single transforms to process later.
a
instance
Converts the
instance, i.e. the list of
instances,
to the equivalent
instance relatively to the available area,
including resolving of percent values to point values.
a
instance to convert
the width of available area, the point value of which is equivalent to 100% for percentage resolving
the height of available area, the point value of which is equivalent to 100% for percentage resolving
resulting affine transformation instance, accumulated from
This class is used to store one
transform
function.
Creates a default
instance equivalent to no transform.
Creates a
instance.
horizontal scaling
vertical skewing
horizontal skewing
vertical scaling
horizontal translation
vertical translation
Gets an array of values corresponding to transformation, i.e. scaling and skewing.
an array of floats
Gets an array of values corresponding to translation.
an array of
-s
A POJO that describes the underline of a layout element.
A POJO that describes the underline of a layout element.
This class is to be used as a property for an element or renderer,
as the value for
Creates an Underline.
Creates an Underline. Both the thickness and vertical positioning under
the text element's base line can be set to a fixed value, or a variable
one depending on the element's font size.
If you want a fixed-width thickness, set thicknessMul to 0;
if you want a thickness solely dependent on the font size, set
thickness to 0.
Mutatis mutandis for the y-position.
the
of the underline
a float defining the minimum thickness in points of the underline
a float defining the font size dependent component of the thickness of the underline
a float defining the default absolute vertical distance in points from the text's base line
a float defining the font size dependent component of the vertical positioning of the underline
the way the underline finishes at its edges.
Creates an Underline.
Creates an Underline. Both the thickness and vertical positioning under
the text element's base line can be set to a fixed value, or a variable
one depending on the element's font size.
If you want a fixed-width thickness, set thicknessMul to 0;
if you want a thickness solely dependent on the font size, set
thickness to 0.
Mutatis mutandis for the y-position.
the
of the underline
a float defining the opacity of the underline; a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
a float defining the minimum thickness in points of the underline
a float defining the font size dependent component of the thickness of the underline
a float defining the default absolute vertical distance in points from the text's base line
a float defining the font size dependent component of the vertical positioning of the underline
the way the underline finishes at its edges.
Gets the color of the underline.
a
Gets the opacity of the underline color.
a float between 0 and 1, where 1 stands for fully opaque color and 0 - for fully transparent
Gets the total thickness of the underline (fixed + variable part).
the font size for which to calculate the variable thickness
the total thickness, as a float, in points
Gets the vertical position of the underline (fixed + variable part).
the font size for which to calculate the variable position
the y-position, as a float, in points
Gets the multiplier for the vertical positioning of the text underline.
the Y-position multiplier, as a float
Gets the
of the text underline.
the line cap style, as an int referring to
the values of
A specialized class that holds a value and the unit it is measured in.
Creates a UnitValue object with a specified type and value.
either
or a
the value to be stored.
Creates a copy of UnitValue object.
the value to be stored
Creates a UnitValue POINT object with a specified value.
the value to be stored.
a new
Creates a UnitValue PERCENT object with a specified value.
the value to be stored.
a new
Creates an array of UnitValue PERCENT objects with specified values.
the values to be stored.
a new normalized (Σ=100%) array of
.
Creates an array of UnitValue PERCENT objects with equal values.
of the resulted array.
a array of equal
.
Creates an array of UnitValue POINT objects with specified values.
the values to be stored.
a new array of
Returns the unit this value is stored in, either points (pt) or percent(%)
either 1 for
or 2 for
Sets the unit this value is stored in, either points (pt) or percent(%)
either
or
Gets the measured value stored in this object
the value, as a float
Sets the measured value stored in this object
a float
Returns whether or not the value is stored in points (pt)
true if stored in points
Returns whether or not the value is stored in percent (%)
true if stored in percent
A specialized enum containing potential property values for
.
Defines the most common properties and behavior that are shared by most
implementations.
Defines the most common properties and behavior that are shared by most
implementations. All default Renderers are subclasses of
this default implementation.
The maximum difference between
coordinates to consider rectangles equal
The infinity value which is used while layouting
Creates a renderer.
Creates a renderer for the specified layout element.
the layout element that will be drawn by this renderer
Checks if this renderer or its model element have the specified property,
i.e. if it was set to this very element or its very model element earlier.
the property to be checked
if this instance or its model element have given own property,
otherwise
Deletes property from this very renderer, or in case the property is specified on its model element, the
property of the model element is deleted
the property key to be deleted
Returns a property with a certain key, as a font object.
an
enum value
a
Returns a property with a certain key, as a color.
an
enum value
a
Returns a property with a certain key, as a
.
an
enum value
a
Returns a property with a certain key, as a floating point value.
an
enum value
a
Returns a property with a certain key, as a floating point value.
an
enum value
default value to be returned if property is not found
a
Returns a property with a certain key, as a boolean value.
an
enum value
a
Returns a property with a certain key, as a unit value.
an
enum value
a
Returns a property with a certain key, as an integer value.
an
enum value
a
Returns a string representation of the renderer.
a
Draws a background layer if it is defined by a key
in either the layout element or this
itself.
the context (canvas, document, etc) of this drawing operation.
Create a
with the given area and containing a linear gradient inside.
the linear gradient builder
the result object area
the pdf document
the xObject with a specified area and a linear gradient
Evaluate the actual background
the current occupied area with applied margins
the actual background area
Performs the drawing operation for all
children
of this renderer.
the context (canvas, document, etc) of this drawing operation.
Performs the drawing operation for the border of this renderer, if
defined by any of the
values in either the layout
element or this
itself.
the context (canvas, document, etc) of this drawing operation.
Indicates whether this renderer is flushed or not, i.e. if
has already
been called.
whether the renderer has been flushed
Gets all rectangles that this
can draw upon in the given area.
a physical area on the
a list of
rectangles
Gets the bounding box that contains all content written to the
by this
.
the smallest
that surrounds the content
Gets the border box of a renderer.
Gets the border box of a renderer.
This is a box used to draw borders.
border box of a renderer
Applies margins of the renderer on the given rectangle
a rectangle margins will be applied on.
indicates whether margins will be applied
inside (in case of false) or outside (in case of true) the rectangle.
a
border box
of the renderer
Applies the border box of the renderer on the given rectangle
If the border of a certain side is null, the side will remain as it was.
a rectangle the border box will be applied on.
indicates whether the border box will be applied
inside (in case of false) or outside (in case of false) the rectangle.
a
border box
of the renderer
Applies paddings of the renderer on the given rectangle
a rectangle paddings will be applied on.
indicates whether paddings will be applied
inside (in case of false) or outside (in case of false) the rectangle.
a
border box
of the renderer
Retrieves element's fixed content box width, if it's set.
Retrieves element's fixed content box width, if it's set.
Takes into account
,
,
and
properties.
width of the parent element content box.
If element has relative width, it will be
calculated relatively to this parameter.
element's fixed content box width or null if it's not set.
Retrieves element's fixed content box max width, if it's set.
Retrieves element's fixed content box max width, if it's set.
Takes into account
and
properties.
width of the parent element content box.
If element has relative width, it will be
calculated relatively to this parameter.
element's fixed content box max width or null if it's not set.
Retrieves element's fixed content box max width, if it's set.
Retrieves element's fixed content box max width, if it's set.
Takes into account
property value.
width of the parent element content box.
If element has relative width, it will be
calculated relatively to this parameter.
element's fixed content box max width or null if it's not set.
Updates fixed content box width value for this renderer.
Updates fixed content box width value for this renderer.
Takes into account
property value.
element's new fixed content box width.
Retrieves the element's fixed content box height, if it's set.
Retrieves the element's fixed content box height, if it's set.
Takes into account
,
,
and
properties.
element's fixed content box height or null if it's not set.
Calculates the element corner's border radii.
defines border radii of the element
defines the area of the element
defines whether horizontal or vertical radii should be calculated
the element corner's border radii.
Updates fixed content box height value for this renderer.
Updates fixed content box height value for this renderer.
Takes into account
property value.
element's new fixed content box height, shall be not null.
Retrieve element's content box max-ehight, if it's set.
Retrieve element's content box max-ehight, if it's set.
Takes into account
property value.
element's content box max-height or null if it's not set.
Updates content box max-height value for this renderer.
Updates content box max-height value for this renderer.
Takes into account
property value.
element's new content box max-height, shall be not null.
Retrieves element's content box min-height, if it's set.
Retrieves element's content box min-height, if it's set.
Takes into account
property value.
element's content box min-height or null if it's not set.
Updates content box min-height value for this renderer.
Updates content box min-height value for this renderer.
Takes into account
property value.
element's new content box min-height, shall be not null.
Gets the first yLine of the nested children recursively.
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.
the first yline of the nested children, null if there is no text found
Applies given margins on the given rectangle
a rectangle margins will be applied on.
the margins to be applied on the given rectangle
indicates whether margins will be applied
inside (in case of false) or outside (in case of true) the rectangle.
a
border box
of the renderer
Returns margins of the renderer
a
float[]
margins of the renderer
Returns paddings of the renderer
a
float[]
paddings of the renderer
Applies given paddings on the given rectangle
a rectangle paddings will be applied on.
the paddings to be applied on the given rectangle
indicates whether paddings will be applied
inside (in case of false) or outside (in case of false) the rectangle.
a
border box
of the renderer
Applies the given border box (borders) on the given rectangle
a rectangle paddings will be applied on.
the
borders
to be applied on the given rectangle
indicates whether the border box will be applied
inside (in case of false) or outside (in case of false) the rectangle.
a
border box
of the renderer
Retrieve the parent's resolved height declaration.
Retrieve the parent's resolved height declaration.
If the parent has a relative height declaration, it will check it's parent recursively,
null if no height declaration is set on the parent, or if it's own height declaration cannot be resolved
The float value of the resolved height otherwiser
Retrieve the direct parent's absolute height property
the direct parent's absolute height property value if it exists, null otherwise
Indicates whether the renderer's position is fixed or not.
a
boolean
Indicates whether the renderer's position is fixed or not.
a
boolean
Gets borders of the element in the specified order: top, right, bottom, left.
an array of BorderDrawer objects.
In case when certain border isn't set Property.BORDER is used,
and if Property.BORDER is also not set then null is returned
on position of this border
Gets border radii of the element in the specified order: top-left, top-right, bottom-right, bottom-left.
an array of BorderRadius objects.
In case when certain border radius isn't set Property.BORDER_RADIUS is used,
and if Property.BORDER_RADIUS is also not set then null is returned
on position of this border radius
Calculates the bounding box of the content in the coordinate system of the pdf entity on which content is placed,
e.g. document page or form xObject.
Calculates the bounding box of the content in the coordinate system of the pdf entity on which content is placed,
e.g. document page or form xObject. This is particularly useful for the cases when element is nested in the rotated
element.
a
which is a bbox of the content not relative to the parent's layout area but rather to
the some pdf entity coordinate system.
Calculates bounding box around points.
list of the points calculated bbox will enclose.
array of float values which denote left, bottom, right, top lines of bbox in this specific order
This method calculates the shift needed to be applied to the points in order to position
upper and left borders of their bounding box at the given lines.
x coordinate at which points bbox left border is to be aligned
y coordinate at which points bbox upper border is to be aligned
the points, which bbox will be aligned at the given position
array of two floats, where first element denotes x-coordinate shift and the second
element denotes y-coordinate shift which are needed to align points bbox at the given lines.
Check if corresponding property has point value.
false if property value either null, or percent, otherwise true.
Check if corresponding property has relative value.
false if property value either null, or point, otherwise true.
Returns the property of the renderer as a UnitValue if it exists and is a UnitValue, null otherwise
renderer to retrieve the property from
key for the property to retrieve
A UnitValue if the property is present and is a UnitValue, null otherwise
Gets any valid
for this renderer, based on
,
and
properties.
Gets any valid
for this renderer, based on
,
and
properties.
This method will not change font property of renderer. Also it is not guarantied that returned font will contain
all glyphs used in renderer or its children.
This method is usually needed for evaluating some layout characteristics like ascender or descender.
a valid
instance based on renderer
property.
Get first valid
for this renderer, based on given font-families, font provider and font characteristics.
Get first valid
for this renderer, based on given font-families, font provider and font characteristics.
This method will not change font property of renderer. Also it is not guarantied that returned font will contain
all glyphs used in renderer or its children.
This method is usually needed for evaluating some layout characteristics like ascender or descender.
a valid
instance based on renderer
property.
This method creates
instance that could be used
to transform content inside the occupied area,
considering the centre of the occupiedArea as the origin of a coordinate system for transformation.
that transforms the content and places it inside occupied area.
Generates standard structure attributes for current tag
based on the layout element properties and renderer layout results.
This class is used to identify standard structure role type based only on it's name for the sake of applying
standard structure attributes.
This class is used to identify standard structure role type based only on it's name for the sake of applying
standard structure attributes.
These types mostly resemble structure type levels in the pdf 1.7 specification, however they are not exact.
In pdf 2.0 some of these types are not even present and moreover, specific roles with the same name might belong
to different type levels depending on context (which consists of kids, parents and their types).
So, these types are mostly useful for the internal itext usage and are not backed by any spec. They are designed for
the most part to return the value the most suitable and handy for the purposes of accessibility properties applying.
Here are the main reasons to leave these types as is for now, even after introducing of PDF 2.0:
- Standard structure types for pdf 1.7 and 2.0 are very alike. There are some differences, like new/removed roles
and attributes, however they are not used in current layout auto tagging mechanism.
- Differentiating possible types for the same role based on the context is not supported at the moment.
In general, the correct way to handle role types would be to have separate classes for every namespace that define type
and apply attributes. However I believe, that for now it is not feasible at the moment to implement this approach.
The right time to improve and replace this class might be when new roles and attributes (specific to the different standard structure namespaces)
will be more widely used in the auto tagging mechanism by default, and also when may be there will be more known
practical examples of utilizing standard structure attributes.
Identifies standard structure role type based only on it's name.
Identifies standard structure role type based only on it's name. The return types might be one of the constants:
-
-
-
-
-
See also remarks in the
class documentation.
Renderer object for the
layout element.
Renderer object for the
layout element. Will terminate the
current content area and initialize a new one.
Creates an AreaBreakRenderer.
the
that will be rendered by this object
This class helps to identify whether we are dealing with a renderer that creates
a new "Block formatting context" in terms of CSS.
This class helps to identify whether we are dealing with a renderer that creates
a new "Block formatting context" in terms of CSS. Such renderers adhere to
specific rules of floating elements and margins collapse handling.
https://www.w3.org/TR/CSS21/visuren.html#block-formatting
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context
Defines whether a renderer creates a new "Block formatting context" in terms of CSS.
Defines whether a renderer creates a new "Block formatting context" in terms of CSS.
See
class description for more info.
an
to be checked.
true if given renderer creates a new "Block formatting context" in terms of CSS, false otherwise.
This method creates
instance that could be used
to rotate content inside the occupied area.
This method creates
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.
that rotates the content and places it inside occupied area.
Creates a CanvasRenderer from its corresponding layout object.
Creates a CanvasRenderer from its corresponding layout object.
Sets
to true.
the
which this object should manage
Creates a CanvasRenderer from its corresponding layout object.
Creates a CanvasRenderer from its corresponding layout object.
Defines whether the content should be flushed immediately after addition
or not
the
which this object should manage
the value which stands for immediate flushing
For
, this has a meaning of the renderer that will be used for relayout.
relayout renderer.
Creates a CellRenderer from its corresponding layout object.
the
which this object should manage
The list of the cells' borders which should be collapsed
with the first border of this TableRenderer instance, to be drawn on the area.
The list of the cells' borders which should be collapsed
with the last border of this TableRenderer instance, to be drawn on the area.
Returns the collapsed border.
Returns the collapsed border. We process collapse
if the table border width is strictly greater than cell border width.
cell border
table border
the collapsed border
Creates a DivRenderer from its corresponding layout object.
the
which this object should manage
For
, this has a meaning of the renderer that will be used for relayout.
relayout renderer.
Adds some pages so that the overall number is at least n.
Adds some pages so that the overall number is at least n.
Returns the page size of the n'th page.
Gets the maximum offset above the base line that this
extends to.
the upwards vertical offset of this
Gets the maximum offset below the base line that this
extends to.
the downwards vertical offset of this
Creates an ImageRenderer from its corresponding layout object.
the
which this object should manage
A renderer object is responsible for drawing a corresponding layout object on
a document or canvas.
A renderer object is responsible for drawing a corresponding layout object on
a document or canvas. Every layout object has a renderer, by default one of
the corresponding type, e.g. you can ask an
for its
.
Renderers are designed to be extensible, and custom implementations can be
seeded to layout objects (or their custom subclasses) at runtime.
Adds a child to the current renderer
a child to be added
This method simulates positioning of the renderer, including all of its children, and returns
the
, representing the layout result, including occupied area, status, i.e.
if there was enough place to fit the renderer subtree, etc.
This method simulates positioning of the renderer, including all of its children, and returns
the
, representing the layout result, including occupied area, status, i.e.
if there was enough place to fit the renderer subtree, etc.
can be extended to return custom layout results for custom elements, e.g.
uses
as its result.
This method can be called standalone to learn how much area the renderer subtree needs, or can be called
before
, to prepare the renderer to be flushed to the output stream.
the description of layout area and any other additional information
result of the layout process
Flushes the renderer subtree contents, i.e. draws itself on canvas,
adds necessary objects to the
etc.
contains the
to which the renderer subtree if flushed,
the
on which the renderer subtree is drawn and other additional parameters
needed to perform drawing
Gets the resultant occupied area after the last call to the
method.
instance
Gets a property from this entity or one of its hierarchical parents.
Gets a property from this entity or one of its hierarchical parents.
If the property is not found,
will be returned.
the return type associated with the property
the property to be retrieved
a fallback value
the value of the given property
Explicitly sets this object as the child of another
in
the renderer hierarchy.
Explicitly sets this object as the child of another
in
the renderer hierarchy. Some implementations also use this method
internally to create a consistent hierarchy tree.
the object to place higher in the renderer hierarchy
by default, this object
Gets the parent
.
direct parent
renderer
of this instance
Gets the model element associated with this renderer.
the model element, as a
container of properties
Gets the child
s.
a list of direct child
renderers
of this instance
Indicates whether this renderer is flushed or not, i.e. if
has already
been called.
whether the renderer has been flushed
Moves the renderer subtree by the specified offset.
Moves the renderer subtree by the specified offset. This method affects occupied area of the renderer.
the x-axis offset in points. Positive value will move the renderer subtree to the right.
the y-axis offset in points. Positive value will move the renderer subtree to the top.
Gets a new instance of this class to be used as a next renderer, after this renderer is used, if
is called more than once.
new renderer instance
Gets the total lengths of characters in this line.
Gets the total lengths of characters in this line. Other elements (images, tables) are not taken
into account.
the total lengths of characters in this line.
Returns the number of base characters, i.e. non-mark characters
the number of base non-mark characters
Calculates and sets encountered tab size.
Calculates and sets encountered tab size.
Returns null, if processing is finished and layout can be performed for the tab renderer;
otherwise, in case when the tab should be processed after the next element in the line, this method returns corresponding tab stop.
Calculates and sets tab size with the account of the element that is next in the line after the tab.
Calculates and sets tab size with the account of the element that is next in the line after the tab.
Returns resulting width of the tab.
Trim first child text renderers.
total number of trimmed glyphs.
Apply OTF features and return the last(!) base direction of child renderer
the last(!) base direction of child renderer.
Preprocess a continuous sequence of TextRenderer containing special scripts
prior to layouting the first TextRenderer in the sequence.
Preprocess a continuous sequence of TextRenderer containing special scripts
prior to layouting the first TextRenderer in the sequence.
In this method we preprocess a sequence containing special scripts only,
skipping floating renderers as they're not part of a regular layout flow,
and breaking the prelayout processing once a non-special script containing renderer occurs.
Prelayout processing includes the following steps:
-
: determine boundaries of the sequence
and concatenate its TextRenderer#text fields converted to a String representation;
- get the String analyzed with WordWrapper#getPossibleBreaks and
receive a zero-based array of points where the String is allowed to got broken in lines;
-
:
distribute the list over the TextRenderer#specialScriptsWordBreakPoints, preliminarily having the points shifted,
so that each TextRenderer#specialScriptsWordBreakPoints is based on the first element of TextRenderer#text.
index of the childRenderer in LineRenderer#childRenderers
from which the a continuous sequence of TextRenderer containing special scripts starts
While resolving TextRenderer may split into several ones with different fonts.
Creates a LineSeparatorRenderer from its corresponding layout object.
the
which this object should manage
Creates a LinkRenderer from its corresponding layout object.
the
which this object should manage
Creates a LinkRenderer from its corresponding layout object, with a custom
text to replace the contents of the
.
the
which this object should manage
the replacement text
Creates a ListItemRenderer from its corresponding layout object.
the
which this object should manage
Creates a ListRenderer from its corresponding layout object.
the
which this object should manage
Corrects split and overflow renderers when
is applied.
Corrects split and overflow renderers when
is applied.
We assume that
is applied when the first
cannot be fully layouted.
This means that the problem has occurred in one of the first list item renderer's children.
In that case we force the placement of all first item renderer's children before the one,
which was the cause of
, including this child.
Notice that we do not expect
to be applied
if we can render the first item renderer and strongly recommend not to set
manually.
the
split renderer
before correction
the
overflow renderer
before correction
the renderer which has produced
the area occupied by layout before correction
corrected
layout result
This class represents the
renderer
object for a
object.
This class represents the
renderer
object for a
object. It will draw the glyphs of the textual content on the
.
Creates a ParagraphRenderer from its corresponding layout object.
the
which this object should manage
Gets the lines which are the result of the
.
paragraph lines, or null if layout hasn't been called yet
Draws (flushes) the content.
This method correctly closes the
instance.
This method correctly closes the
instance.
There might be hanging elements, like in case of
is set to true
and when no consequent element has been added. This method addresses such situations.
This method tries to calculate min-max-width of rotated element using heuristics
of
.
This method tries to calculate min-max-width of rotated element using heuristics
of
.
This method may call
once in best case
(if the width is set on element, or if we are really lucky) and three times in worst case.
the minMaxWidth of NOT rotated renderer
the actual renderer
minMaxWidth of rotated renderer or original value in case rotated value can not be calculated, or renderer isn't rotated.
This method tries to calculate width of not rotated renderer, so after rotation it fits availableWidth.
This method tries to calculate width of not rotated renderer, so after rotation it fits availableWidth.
This method uses heuristics of
.
It doesn't take into account any of height properties of renderer or height of layoutArea.
The minMaxWidth calculations and initial layout may take long time, but they won't be called if the renderer have width property.
the width of layoutArea
the actual renderer
the width that should be set as width of layout area to properly layout element, or fallback to
in case it can not be calculated, or renderer isn't rotated.
Horizontal borders of the table.
Horizontal borders of the table.
It consists of a list, each item of which represents
a horizontal border of a row, each of them is a list of borders of the cells.
The amount of the lists is the number of rows + 1, the size of each of these lists
corresponds to the number of columns.
Vertical borders of the table.
Vertical borders of the table.
It consists of a list, each item of which represents
a vertical border of a row, each of them is a list of borders of the cells.
The amount of the lists is the number of columns + 1, the size of each of these lists
corresponds to the number of rows.
The number of the table's columns.
The outer borders of the table (as body).
All the cells of the table.
All the cells of the table.
Each item of the list represents a row and consists of its cells.
The first row, which should be processed on this area.
The first row, which should be processed on this area.
The value of this field varies from area to area.
It's zero-based and inclusive.
The last row, which should be processed on this area.
The last row, which should be processed on this area.
The value of this field varies from area to area.
It's zero-based and inclusive. The last border will have index (finishRow+1) because
the number of borders is greater by one than the number of rows
The width of the widest left border.
The width of the widest right border.
The number of rows flushed to the table.
The number of rows flushed to the table.
Its value is zero for regular tables. The field makes sense only for large tables.
This class represents the
renderer
object for a
object.
This class represents the
renderer
object for a
object. It will delegate its drawing operations on to the
instances associated with the
table cells.
True for newly created renderer.
True for newly created renderer. For split renderers this is set to false. Used for tricky layout.
Creates a TableRenderer from a
which will partially render
the table.
the table to be rendered by this renderer
the table rows to be rendered
Creates a TableRenderer from a
.
the table to be rendered by this renderer
Applies the given spacings on the given rectangle
a rectangle spacings will be applied on.
the horizontal spacing to be applied on the given rectangle
the vertical spacing to be applied on the given rectangle
indicates whether the spacings will be applied
inside (in case of false) or outside (in case of false) the rectangle.
a
border box
of the renderer
Applies the given horizontal or vertical spacing on the given rectangle
a rectangle spacings will be applied on.
the horizontal or vertical spacing to be applied on the given rectangle
defines whether the provided spacing should be applied as a horizontal or a vertical one
indicates whether the spacings will be applied
inside (in case of false) or outside (in case of false) the rectangle.
a
border box
of the renderer
If there is some space left, we will move the footer up, because initially the footer is at the very bottom of the area.
If there is some space left, we will move the footer up, because initially the footer is at the very bottom of the area.
We also will adjust the occupied area by the footer's size if it is present.
the layout box which represents the area which is left free.
If there is some space left, we will move the caption up, because initially the caption is at the very bottom of the area.
If there is some space left, we will move the caption up, because initially the caption is at the very bottom of the area.
We also will adjust the occupied area by the caption's size if it is present.
the layout box which represents the area which is left free.
This method is used to set row range for table renderer during creating a new renderer.
This method is used to set row range for table renderer during creating a new renderer.
The purpose to use this method is to remove input argument RowRange from createOverflowRenderer
and createSplitRenderer methods.
Returns minWidth
This are a structs used for convenience in layout.
Utility class that copies overflow renderer rows on cell replacement so it won't affect original renderer
Creates a TabRenderer from its corresponding layout object
the
which this object should manage
Replaces special whitespace glyphs to new whitespace '\u0020' glyph that has custom width.
Replaces special whitespace glyphs to new whitespace '\u0020' glyph that has custom width.
Special whitespace glyphs are symbols such as '\u2002', '\u2003', '\u2009' and '\t'.
the string for preprocessing
the font that will be used when displaying the string
old line with new special whitespace glyphs
This class represents the
renderer
object for a
object.
This class represents the
renderer
object for a
object. It will draw the glyphs of the textual content on the
.
Creates a TextRenderer from its corresponding layout object.
the
which this object should manage
Creates a TextRenderer from its corresponding layout object, with a custom
text to replace the contents of the
.
the
which this object should manage
the replacement text
Trims any whitespace characters from the start of the
to be rendered.
Gets the maximum offset above the base line that this Text extends to.
the upwards vertical offset of this
Gets the maximum offset below the base line that this Text extends to.
the downwards vertical offset of this
Gets the position on the canvas of the imaginary horizontal line upon which
the
's contents will be written.
the y position of this text on the
Moves the vertical position to the parameter's value.
the new vertical position of the Text
Manually sets the contents of the Text's representation on the canvas,
regardless of the Text's own contents.
the replacement text
Manually sets a GlyphLine to be rendered with a specific start and end point.
a
the leftmost end of the GlyphLine
the rightmost end of the GlyphLine
Manually set a GlyphLine and PdfFont for rendering.
the
the font
The length of the whole text assigned to this renderer.
the text length
Gets char code at given position for the text belonging to this renderer.
the position in range [0; length())
Unicode char code
Get ascender and descender from font metrics.
Get ascender and descender from font metrics.
If these values are obtained from typo metrics they are normalized with a scale coefficient.
from which metrics will be extracted
array in which the first element is an ascender and the second is a descender
Get ascender and descender from font metrics.
Get ascender and descender from font metrics.
In RenderingMode.DEFAULT_LAYOUT_MODE if these values are obtained from typo metrics they are normalized with a scale coefficient.
from which metrics will be extracted
mode in which metrics will be obtained. Impact on the use of scale coefficient
array in which the first element is an ascender and the second is a descender
Analyzes/checks whether
, bounded by start and end,
contains glyphs belonging to special script.
Analyzes/checks whether
, bounded by start and end,
contains glyphs belonging to special script.
Mind that the behavior of this method depends on the analyzeSpecialScriptsWordBreakPointsOnly parameter:
- pass
if you need to analyze the
by checking each of its glyphs
AND to fill
list afterwards,
i.e. when analyzing a sequence of TextRenderers prior to layouting;
- pass
if you want to check if text contains glyphs belonging to special scripts,
according to the already filled
list.
false if analysis of each glyph is required,
true if analysis has already been performed earlier
and the results are stored in
true if
, bounded by start and end, contains glyphs belonging to special script, otherwise false
Returns the length of the
line
which is the result of the layout call.
the length of the line
Resolve
String[] value.
add all processed renderers to.
true, if new
has been created.
glyph to be set
font to be set
Checks if layout module can access pdfCalligraph
true if layout can access pdfCalligraph and false otherwise
A generic abstract root element for a PDF layout object hierarchy.
this type
Adds an element to the root.
Adds an element to the root. The element is immediately placed in the contents.
an element with spacial margins, tabbing, and alignment
this element
Adds an image to the root.
Adds an image to the root. The element is immediately placed in the contents.
a graphical image element
this element
Gets
if presents.
instance of
if exists, otherwise null.
Sets
.
Sets
.
Note, font provider is inherited property.
instance of
.
Gets the rootRenderer attribute, a specialized
that
acts as the root object that other
renderers
descend
from.
the
attribute
Convenience method to write a text aligned about the specified point
text to be placed to the page
the point about which the text will be aligned and rotated
the point about which the text will be aligned and rotated
horizontal alignment about the specified point
this object
Convenience method to write a text aligned about the specified point
text to be placed to the page
the point about which the text will be aligned and rotated
the point about which the text will be aligned and rotated
horizontal alignment about the specified point
the angle of rotation applied to the text, in radians
this object
Convenience method to write a text aligned about the specified point
text to be placed to the page
the point about which the text will be aligned and rotated
the point about which the text will be aligned and rotated
horizontal alignment about the specified point
vertical alignment about the specified point
the angle of rotation applied to the text, in radians
this object
Convenience method to write a kerned text aligned about the specified point
text to be placed to the page
the point about which the text will be aligned and rotated
the point about which the text will be aligned and rotated
horizontal alignment about the specified point
vertical alignment about the specified point
the angle of rotation applied to the text, in radians
this object
Convenience method to write a text aligned about the specified point
paragraph of text to be placed to the page. By default it has no leading and is written in single line.
Set width to write multiline text.
the point about which the text will be aligned and rotated
the point about which the text will be aligned and rotated
horizontal alignment about the specified point
this object
Convenience method to write a text aligned about the specified point
paragraph of text to be placed to the page. By default it has no leading and is written in single line.
Set width to write multiline text.
the point about which the text will be aligned and rotated
the point about which the text will be aligned and rotated
horizontal alignment about the specified point
vertical alignment about the specified point
this object
Convenience method to write a text aligned about the specified point
paragraph of text to be placed to the page. By default it has no leading and is written in single line.
Set width to write multiline text.
the point about which the text will be aligned and rotated
the point about which the text will be aligned and rotated
the page number to write the text
horizontal alignment about the specified point
vertical alignment about the specified point
the angle of rotation applied to the text, in radians
this object
The default implementation of
interface.
Interface for customizing the split character.
The splitting implementation is free to look ahead or look behind characters to make a decision.
the position of
in the
an array of unicode char codes which represent current text
true if the character can split a line.
Container object for style properties of an element.
Container object for style properties of an element. A style can be used as
an effective way to define multiple equal properties to several elements.
Used in
.
The properties set via Style have a lower priority than directly set properties.
For example, if the same property is set directly and added via Style, then,
no matter in which order they are set, the one set directly will be chosen.
Gets the current left margin width of the element.
the left margin width, as a
object
Sets the left margin width of the element.
the new left margin width
this element
Gets the current right margin width of the element.
the right margin width, as a
object
Sets the right margin width of the element.
the new right margin width
this element
Gets the current top margin width of the element.
the top margin width, as a
object
Sets the top margin width of the element.
the new top margin width
this element
Gets the current bottom margin width of the element.
the bottom margin width, as a
object
Sets the bottom margin width of the element.
the new bottom margin width
this element
Sets all margins around the element to the same width.
the new margin width
this element
Sets the margins around the element to a series of new widths.
the new margin top width
the new margin right width
the new margin bottom width
the new margin left width
this element
Gets the current left padding width of the element.
the left padding width, as a
object
Sets the left padding width of the element.
the new left padding width
this element
Gets the current right padding width of the element.
the right padding width, as a
object
Sets the right padding width of the element.
the new right padding width
this element
Gets the current top padding width of the element.
the top padding width, as a
object
Sets the top padding width of the element.
the new top padding width
this element
Gets the current bottom padding width of the element.
the bottom padding width, as a
object
Sets the bottom padding width of the element.
the new bottom padding width
this element
Sets all paddings around the element to the same width.
the new padding width
this element
Sets the paddings around the element to a series of new widths.
the new padding top width
the new padding right width
the new padding bottom width
the new padding left width
this element
Sets the vertical alignment of the element.
the vertical alignment setting
this element
Sets a ratio which determines in which proportion will word spacing and character spacing
be applied when horizontal alignment is justified.
the ratio coefficient. It must be between 0 and 1, inclusive.
It means that ratio part of the free space will
be compensated by word spacing, and 1-ratio part of the free space will
be compensated by character spacing.
If ratio is 1, additional character spacing will not be applied.
If ratio is 0, additional word spacing will not be applied.
this element
Returns whether the
should be kept together as much
as possible.
the current value of the
property
Sets whether the
should be kept together as much
as possible.
the new value of the
property
this element
Sets the rotation radAngle.
the new rotation radAngle, as a float
this element
Sets the rotation angle.
the new rotation angle, as a double
this element
Sets the width property of the element, measured in points.
a value measured in points.
this Element.
Sets the width property of the element with a
.
a
object
this Element.
Gets the width property of the element.
the width of the element, with a value and a measurement unit.
Sets the height property of the element with a
.
a
object
this Element.
Sets the height property the element as a point-value.
a floating point value for the new height
the block element itself.
Gets the height property of the element.
the height of the element, as a floating point value. Null if the property is not present
Sets the max-height of the element as point-unit value.
a floating point value for the new max-height
the block element itself
Sets the max-height property of the element with a
.
a
object
the block element itself
Sets the min-height property of the element with a
.
a
object
the block element itself
Sets the min-height of the element as point-unit value.
a floating point value for the new min-height
the block element itself
Sets the max-width property of the element with a
.
a
object
the block element itself
Sets the max-width of the element as point-unit value.
a floating point value for the new max-width
the block element itself
Sets the min-width property of the element with a
.
a
object
the block element itself
Sets the min-width of the element as point-unit value.
a floating point value for the new min-width
the block element itself
A layout element which has
accessibility properties.
A layout element which has
accessibility properties.
They define element's role (
) - the name
that will be used to tag the element if it is added to a Tagged PDF document.
They can also define other metadata for the tag.
Gets the
accessibility properties.
Gets the
accessibility properties
. See also
.
an interface that allows to specify properties of a tagged element in Tagged PDF.
Calculates the common rectangle which includes all the input rectangles.
list of input rectangles.
common rectangle.