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 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 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 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. 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. 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 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 removed in iText 7.2. Contains all font related data to create and . Contains all font related data to create and . fetches with . Note, and do 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[]. 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 temporary 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 temporary fonts. 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. 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. Gets union of available and temporary fonts. Gets union of available and temporary fonts. Note, the collection is unmodifiable. 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. 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. Add one more range. low boundary of the range. high boundary of the range. Add range with a single number. a single number. Add range with a single char. a single char. 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. 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. 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 . 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. Gets the overflow renderer created during layouting. the renderer Sets the overflow renderer. 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. 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. 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 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 . 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 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 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. 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. 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 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 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. Returns the number of base characters, i.e. 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. 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. 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 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 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 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. 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. Returns true if the character can split a line. Returns true if the character can split a line. 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 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 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. 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.