com.lowagie.text

## Class Chunk

- java.lang.Object
- - com.lowagie.text.Chunk

All Implemented Interfaces:
  Element

Direct Known Subclasses:
  RtfAddableElement, RtfField

    public class Chunk
    extends java.lang.Object
    implements Element

This is the smallest significant part of text that can be added to a document.

Most elements can be divided in one or more `Chunk`s. A chunk is a `String` with a certain `Font`. All other layout parameters should be defined in the object to which this chunk of text is added.

Example:

>      Chunk chunk = new Chunk("Hello world",
>      FontFactory.getFont(FontFactory.COURIER, 20, Font.ITALIC, new Color(255, 0,
>      0)));  document.add(chunk);

### Field Summary

Fields
`static java.lang.String` `ACTION` Key for Action.
`protected java.util.HashMap` `attributes` Contains some of the attributes for this Chunk.
`static java.lang.String` `BACKGROUND` Key for background.
`static java.lang.String` `CHAR_SPACING` Key for character spacing.
`static java.lang.String` `COLOR` Key for color.
`protected java.lang.StringBuffer` `content` This is the content of this chunk of text.
`static java.lang.String` `ENCODING` Key for encoding.
`protected Font` `font` This is the `Font` of this chunk of text.
`static java.lang.String` `GENERICTAG` Key for generic tag.
`static java.lang.String` `HSCALE` Key for text horizontal scaling.
`static java.lang.String` `HYPHENATION` Key for hyphenation.
`static java.lang.String` `IMAGE` Key for image.
`static java.lang.String` `LOCALDESTINATION` Key for local destination.
`static java.lang.String` `LOCALGOTO` Key for local goto.
`static Chunk` `NEWLINE` This is a Chunk containing a newline.
`static java.lang.String` `NEWPAGE` Key for newpage.
`static Chunk` `NEXTPAGE` This is a Chunk containing a newpage.
`static java.lang.String` `OBJECT_REPLACEMENT_CHARACTER` The character stand in for an image or a separator.
`static java.lang.String` `PDFANNOTATION` Key for annotation.
`static java.lang.String` `REMOTEGOTO` Key for remote goto.
`static java.lang.String` `SEPARATOR` Key for drawInterface of the Separator.
`static java.lang.String` `SKEW` Key for text skewing.
`static java.lang.String` `SPLITCHARACTER` Key for split character.
`static java.lang.String` `SUBSUPSCRIPT` Key for sub/superscript.
`static java.lang.String` `TAB` Key for drawInterface of the tab.
`static java.lang.String` `TEXTRENDERMODE` Key for text rendering mode.
`static java.lang.String` `UNDERLINE` Key for underline.

### Fields inherited from interface com.lowagie.text.Element

`ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_JUSTIFIED, ALIGN_JUSTIFIED_ALL, ALIGN_LEFT, ALIGN_MIDDLE, ALIGN_RIGHT, ALIGN_TOP, ALIGN_UNDEFINED, ANCHOR, ANNOTATION, AUTHOR, CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFBLOCK, CCITT_ENDOFLINE, CCITTG3_1D, CCITTG3_2D, CCITTG4, CELL, CHAPTER, CHUNK, CREATIONDATE, CREATOR, HEADER, IMGRAW, IMGTEMPLATE, JBIG2, JPEG, JPEG2000, KEYWORDS, LIST, LISTITEM, MARKED, MULTI_COLUMN_TEXT, PARAGRAPH, PHRASE, PRODUCER, PTABLE, RECTANGLE, ROW, SECTION, SUBJECT, TABLE, TITLE, YMARK`

### Constructor Summary

Constructors
Constructor and Description
`Chunk()` Empty constructor.
`Chunk(char c)` Constructs a chunk of text with a char, without specifying a `Font` .
`Chunk(char c, Font font)` Constructs a chunk of text with a char and a certain `Font`.
`Chunk(Chunk ck)` A `Chunk` copy constructor.
`Chunk(DrawInterface separator)` Creates a separator Chunk.
`Chunk(DrawInterface separator, boolean vertical)` Creates a separator Chunk.
`Chunk(DrawInterface separator, float tabPosition)` Creates a tab Chunk.
`Chunk(DrawInterface separator, float tabPosition, boolean newline)` Creates a tab Chunk.
`Chunk(Image image, float offsetX, float offsetY)` Constructs a chunk containing an `Image`.
`Chunk(Image image, float offsetX, float offsetY, boolean changeLeading)` Constructs a chunk containing an `Image`.
`Chunk(java.lang.String content)` Constructs a chunk of text with a certain content, without specifying a `Font`.
`Chunk(java.lang.String content, Font font)` Constructs a chunk of text with a certain content and a certain `Font`.

### Method Summary

Methods
`java.lang.StringBuffer` `append(java.lang.String string)` appends some text to this `Chunk`.
`java.util.HashMap` `getAttributes()` Gets the attributes for this `Chunk`.
`float` `getCharacterSpacing()` Gets the character spacing.
`java.util.ArrayList` `getChunks()` Gets all the chunks in this element.
`java.lang.String` `getContent()` Returns the content of this `Chunk`.
`Font` `getFont()` Gets the font of this `Chunk`.
`float` `getHorizontalScaling()` Gets the horizontal scaling.
`HyphenationEvent` `getHyphenation()` Returns the hyphenation (if present).
`Image` `getImage()` Returns the image.
`float` `getTextRise()` Gets the text displacement relative to the baseline.
`float` `getWidthPoint()` Gets the width of the Chunk in points.
`boolean` `hasAttributes()` Checks the attributes of this `Chunk`.
`boolean` `isContent()` Checks if this element is a content object.
`boolean` `isEmpty()` Checks is this `Chunk` is empty.
`boolean` `isNestable()` Checks if this element is nestable.
`boolean` `process(ElementListener listener)` Processes the element by adding it (or the different parts) to an `ElementListener`.
`Chunk` `setAction(PdfAction action)` Sets an action for this `Chunk`.
`Chunk` `setAnchor(java.lang.String url)` Sets an anchor for this `Chunk`.
`Chunk` `setAnchor(java.net.URL url)` Sets an anchor for this `Chunk`.
`Chunk` `setAnnotation(PdfAnnotation annotation)` Sets a generic annotation to this `Chunk`.
`private Chunk` `setAttribute(java.lang.String name, java.lang.Object obj)` Sets an arbitrary attribute.
`void` `setAttributes(java.util.HashMap attributes)` Sets the attributes all at once.
`Chunk` `setBackground(java.awt.Color color)` Sets the color of the background `Chunk`.
`Chunk` `setBackground(java.awt.Color color, float extraLeft, float extraBottom, float extraRight, float extraTop)` Sets the color and the size of the background `Chunk`.
`Chunk` `setCharacterSpacing(float charSpace)` Sets the character spacing.
`void` `setFont(Font font)` Sets the font of this `Chunk`.
`Chunk` `setGenericTag(java.lang.String text)` Sets the generic tag `Chunk`.
`Chunk` `setHorizontalScaling(float scale)` Sets the text horizontal scaling.
`Chunk` `setHyphenation(HyphenationEvent hyphenation)` sets the hyphenation engine to this `Chunk`.
`Chunk` `setLocalDestination(java.lang.String name)` Sets a local destination for this `Chunk`.
`Chunk` `setLocalGoto(java.lang.String name)` Sets a local goto for this `Chunk`.
`Chunk` `setNewPage()` Sets a new page tag..
`Chunk` `setRemoteGoto(java.lang.String filename, int page)` Sets a goto for a remote destination for this `Chunk`.
`Chunk` `setRemoteGoto(java.lang.String filename, java.lang.String name)` Sets a goto for a remote destination for this `Chunk`.
`Chunk` `setSkew(float alpha, float beta)` Skews the text to simulate italic and other effects.
`Chunk` `setSplitCharacter(SplitCharacter splitCharacter)` Sets the split characters.
`Chunk` `setTextRenderMode(int mode, float strokeWidth, java.awt.Color strokeColor)` Sets the text rendering mode.
`Chunk` `setTextRise(float rise)` Sets the text displacement relative to the baseline.
`Chunk` `setUnderline(java.awt.Color color, float thickness, float thicknessMul, float yPosition, float yPositionMul, int cap)` Sets an horizontal line that can be an underline or a strikethrough.
`Chunk` `setUnderline(float thickness, float yPosition)` Sets an horizontal line that can be an underline or a strikethrough.
`java.lang.String` `toString()` Returns the content of this `Chunk`.
`int` `type()` Gets the type of the text element.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### OBJECT_REPLACEMENT_CHARACTER

    public static final java.lang.String OBJECT_REPLACEMENT_CHARACTER

The character stand in for an image or a separator.

See Also:
  Constant Field Values

#### NEWLINE

    public static final Chunk NEWLINE

This is a Chunk containing a newline.

#### NEXTPAGE

    public static final Chunk NEXTPAGE

This is a Chunk containing a newpage.

#### content

    protected java.lang.StringBuffer content

This is the content of this chunk of text.

#### font

    protected Font font

This is the `Font` of this chunk of text.

#### attributes

    protected java.util.HashMap attributes

Contains some of the attributes for this Chunk.

#### SEPARATOR

    public static final java.lang.String SEPARATOR

Key for drawInterface of the Separator.

Since:
  2.1.2
See Also:
  Constant Field Values

#### TAB

    public static final java.lang.String TAB

Key for drawInterface of the tab.

Since:
  2.1.2
See Also:
  Constant Field Values

#### HSCALE

    public static final java.lang.String HSCALE

Key for text horizontal scaling.

See Also:
  Constant Field Values

#### UNDERLINE

    public static final java.lang.String UNDERLINE

Key for underline.

See Also:
  Constant Field Values

#### SUBSUPSCRIPT

    public static final java.lang.String SUBSUPSCRIPT

Key for sub/superscript.

See Also:
  Constant Field Values

#### SKEW

    public static final java.lang.String SKEW

Key for text skewing.

See Also:
  Constant Field Values

#### BACKGROUND

    public static final java.lang.String BACKGROUND

Key for background.

See Also:
  Constant Field Values

#### TEXTRENDERMODE

    public static final java.lang.String TEXTRENDERMODE

Key for text rendering mode.

See Also:
  Constant Field Values

#### SPLITCHARACTER

    public static final java.lang.String SPLITCHARACTER

Key for split character.

See Also:
  Constant Field Values

#### HYPHENATION

    public static final java.lang.String HYPHENATION

Key for hyphenation.

See Also:
  Constant Field Values

#### REMOTEGOTO

    public static final java.lang.String REMOTEGOTO

Key for remote goto.

See Also:
  Constant Field Values

#### LOCALGOTO

    public static final java.lang.String LOCALGOTO

Key for local goto.

See Also:
  Constant Field Values

#### LOCALDESTINATION

    public static final java.lang.String LOCALDESTINATION

Key for local destination.

See Also:
  Constant Field Values

#### GENERICTAG

    public static final java.lang.String GENERICTAG

Key for generic tag.

See Also:
  Constant Field Values

#### IMAGE

    public static final java.lang.String IMAGE

Key for image.

See Also:
  Constant Field Values

#### ACTION

    public static final java.lang.String ACTION

Key for Action.

See Also:
  Constant Field Values

#### NEWPAGE

    public static final java.lang.String NEWPAGE

Key for newpage.

See Also:
  Constant Field Values

#### PDFANNOTATION

    public static final java.lang.String PDFANNOTATION

Key for annotation.

See Also:
  Constant Field Values

#### COLOR

    public static final java.lang.String COLOR

Key for color.

See Also:
  Constant Field Values

#### ENCODING

    public static final java.lang.String ENCODING

Key for encoding.

See Also:
  Constant Field Values

#### CHAR_SPACING

    public static final java.lang.String CHAR_SPACING

Key for character spacing.

See Also:
  Constant Field Values

### Constructor Detail

#### Chunk

    public Chunk()

Empty constructor.

#### Chunk

    public Chunk(Chunk ck)

A `Chunk` copy constructor.

Parameters:
  `ck` - the `Chunk` to be copied

#### Chunk

    public Chunk(java.lang.String content,
         Font font)

Constructs a chunk of text with a certain content and a certain `Font`.

Parameters:
  `content` - the content
  `font` - the font

#### Chunk

    public Chunk(java.lang.String content)

Constructs a chunk of text with a certain content, without specifying a `Font`.

Parameters:
  `content` - the content

#### Chunk

    public Chunk(char c,
         Font font)

Constructs a chunk of text with a char and a certain `Font`.

Parameters:
  `c` - the content
  `font` - the font

#### Chunk

    public Chunk(char c)

Constructs a chunk of text with a char, without specifying a `Font` .

Parameters:
  `c` - the content

#### Chunk

    public Chunk(Image image,
         float offsetX,
         float offsetY)

Constructs a chunk containing an `Image`.

Parameters:
  `image` - the image
  `offsetX` - the image offset in the x direction
  `offsetY` - the image offset in the y direction

#### Chunk

    public Chunk(DrawInterface separator)

Creates a separator Chunk. Note that separator chunks can't be used in combination with tab chunks!

Parameters:
  `separator` - the drawInterface to use to draw the separator.
Since:
  2.1.2

#### Chunk

    public Chunk(DrawInterface separator,
         boolean vertical)

Creates a separator Chunk. Note that separator chunks can't be used in combination with tab chunks!

Parameters:
  `separator` - the drawInterface to use to draw the separator.
  `vertical` - true if this is a vertical separator
Since:
  2.1.2

#### Chunk

    public Chunk(DrawInterface separator,
         float tabPosition)

Creates a tab Chunk. Note that separator chunks can't be used in combination with tab chunks!

Parameters:
  `separator` - the drawInterface to use to draw the tab.
  `tabPosition` - an X coordinate that will be used as start position for the next Chunk.
Since:
  2.1.2

#### Chunk

    public Chunk(DrawInterface separator,
         float tabPosition,
         boolean newline)

Creates a tab Chunk. Note that separator chunks can't be used in combination with tab chunks!

Parameters:
  `separator` - the drawInterface to use to draw the tab.
  `tabPosition` - an X coordinate that will be used as start position for the next Chunk.
  `newline` - if true, a newline will be added if the tabPosition has already been reached.
Since:
  2.1.2

#### Chunk

    public Chunk(Image image,
         float offsetX,
         float offsetY,
         boolean changeLeading)

Constructs a chunk containing an `Image`.

Parameters:
  `image` - the image
  `offsetX` - the image offset in the x direction
  `offsetY` - the image offset in the y direction
  `changeLeading` - true if the leading has to be adapted to the image

### Method Detail

#### process

    public boolean process(ElementListener listener)

Processes the element by adding it (or the different parts) to an `ElementListener`.

Specified by:
  `process` in interface `Element`
Parameters:
  `listener` - an `ElementListener`
Returns:
  `true` if the element was processed successfully

#### type

    public int type()

Gets the type of the text element.

Specified by:
  `type` in interface `Element`
Returns:
  a type

#### getChunks

    public java.util.ArrayList getChunks()

Gets all the chunks in this element.

Specified by:
  `getChunks` in interface `Element`
Returns:
  an `ArrayList`

#### append

    public java.lang.StringBuffer append(java.lang.String string)

appends some text to this `Chunk`.

Parameters:
  `string` - `String`
Returns:
  a `StringBuffer`

#### setFont

    public void setFont(Font font)

Sets the font of this `Chunk`.

Parameters:
  `font` - a `Font`

#### getFont

    public Font getFont()

Gets the font of this `Chunk`.

Returns:
  a `Font`

#### getContent

    public java.lang.String getContent()

Returns the content of this `Chunk`.

Returns:
  a `String`

#### toString

    public java.lang.String toString()

Returns the content of this `Chunk`.

Specified by:
  `toString` in interface `Element`
Overrides:
  `toString` in class `java.lang.Object`
Returns:
  a `String`

#### isEmpty

    public boolean isEmpty()

Checks is this `Chunk` is empty.

Returns:
  `false` if the Chunk contains other characters than space.

#### getWidthPoint

    public float getWidthPoint()

Gets the width of the Chunk in points.

Returns:
  a width in points

#### hasAttributes

    public boolean hasAttributes()

Checks the attributes of this `Chunk`.

Returns:
  false if there aren't any.

#### getAttributes

    public java.util.HashMap getAttributes()

Gets the attributes for this `Chunk`.

It may be null.

Returns:
  the attributes for this `Chunk`

#### setAttributes

    public void setAttributes(java.util.HashMap attributes)

Sets the attributes all at once.

Parameters:
  `attributes` - the attributes of a Chunk

#### setAttribute

    private Chunk setAttribute(java.lang.String name,
                     java.lang.Object obj)

Sets an arbitrary attribute.

Parameters:
  `name` - the key for the attribute
  `obj` - the value of the attribute
Returns:
  this `Chunk`

#### setHorizontalScaling

    public Chunk setHorizontalScaling(float scale)

Sets the text horizontal scaling. A value of 1 is normal and a value of 0.5f shrinks the text to half it's width.

Parameters:
  `scale` - the horizontal scaling factor
Returns:
  this `Chunk`

#### getHorizontalScaling

    public float getHorizontalScaling()

Gets the horizontal scaling.

Returns:
  a percentage in float

#### setUnderline

    public Chunk setUnderline(float thickness,
                     float yPosition)

Sets an horizontal line that can be an underline or a strikethrough. Actually, the line can be anywhere vertically and has always the `Chunk` width. Multiple call to this method will produce multiple lines.

Parameters:
  `thickness` - the absolute thickness of the line
  `yPosition` - the absolute y position relative to the baseline
Returns:
  this `Chunk`

#### setUnderline

    public Chunk setUnderline(java.awt.Color color,
                     float thickness,
                     float thicknessMul,
                     float yPosition,
                     float yPositionMul,
                     int cap)

Sets an horizontal line that can be an underline or a strikethrough. Actually, the line can be anywhere vertically and has always the `Chunk` width. Multiple call to this method will produce multiple lines.

Parameters:
  `color` - the color of the line or `null` to follow the text color
  `thickness` - the absolute thickness of the line
  `thicknessMul` - the thickness multiplication factor with the font size
  `yPosition` - the absolute y position relative to the baseline
  `yPositionMul` - the position multiplication factor with the font size
  `cap` - the end line cap. Allowed values are PdfContentByte.LINE_CAP_BUTT, PdfContentByte.LINE_CAP_ROUND and PdfContentByte.LINE_CAP_PROJECTING_SQUARE
Returns:
  this `Chunk`

#### setTextRise

    public Chunk setTextRise(float rise)

Sets the text displacement relative to the baseline. Positive values rise the text, negative values lower the text.

It can be used to implement sub/superscript.

Parameters:
  `rise` - the displacement in points
Returns:
  this `Chunk`

#### getTextRise

    public float getTextRise()

Gets the text displacement relative to the baseline.

Returns:
  a displacement in points

#### setSkew

    public Chunk setSkew(float alpha,
                float beta)

Skews the text to simulate italic and other effects. Try `alpha=0` and `beta=12`.

Parameters:
  `alpha` - the first angle in degrees
  `beta` - the second angle in degrees
Returns:
  this `Chunk`

#### setBackground

    public Chunk setBackground(java.awt.Color color)

Sets the color of the background `Chunk`.

Parameters:
  `color` - the color of the background
Returns:
  this `Chunk`

#### setBackground

    public Chunk setBackground(java.awt.Color color,
                      float extraLeft,
                      float extraBottom,
                      float extraRight,
                      float extraTop)

Sets the color and the size of the background `Chunk`.

Parameters:
  `color` - the color of the background
  `extraLeft` - increase the size of the rectangle in the left
  `extraBottom` - increase the size of the rectangle in the bottom
  `extraRight` - increase the size of the rectangle in the right
  `extraTop` - increase the size of the rectangle in the top
Returns:
  this `Chunk`

#### setTextRenderMode

    public Chunk setTextRenderMode(int mode,
                          float strokeWidth,
                          java.awt.Color strokeColor)

Sets the text rendering mode. It can outline text, simulate bold and make text invisible.

Parameters:
  `mode` - the text rendering mode. It can be `PdfContentByte.TEXT_RENDER_MODE_FILL`,`PdfContentByte.TEXT_RENDER_MODE_STROKE`,`PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE` and `PdfContentByte.TEXT_RENDER_MODE_INVISIBLE`.
  `strokeWidth` - the stroke line width for the modes `PdfContentByte.TEXT_RENDER_MODE_STROKE` and `PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE`.
  `strokeColor` - the stroke color or `null` to follow the text color
Returns:
  this `Chunk`

#### setSplitCharacter

    public Chunk setSplitCharacter(SplitCharacter splitCharacter)

Sets the split characters.

Parameters:
  `splitCharacter` - the `SplitCharacter` interface
Returns:
  this `Chunk`

#### setHyphenation

    public Chunk setHyphenation(HyphenationEvent hyphenation)

sets the hyphenation engine to this `Chunk`.

Parameters:
  `hyphenation` - the hyphenation engine
Returns:
  this `Chunk`

#### setRemoteGoto

    public Chunk setRemoteGoto(java.lang.String filename,
                      java.lang.String name)

Sets a goto for a remote destination for this `Chunk`.

Parameters:
  `filename` - the file name of the destination document
  `name` - the name of the destination to go to
Returns:
  this `Chunk`

#### setRemoteGoto

    public Chunk setRemoteGoto(java.lang.String filename,
                      int page)

Sets a goto for a remote destination for this `Chunk`.

Parameters:
  `filename` - the file name of the destination document
  `page` - the page of the destination to go to. First page is 1
Returns:
  this `Chunk`

#### setLocalGoto

    public Chunk setLocalGoto(java.lang.String name)

Sets a local goto for this `Chunk`.

There must be a local destination matching the name.

Parameters:
  `name` - the name of the destination to go to
Returns:
  this `Chunk`

#### setLocalDestination

    public Chunk setLocalDestination(java.lang.String name)

Sets a local destination for this `Chunk`.

Parameters:
  `name` - the name for this destination
Returns:
  this `Chunk`

#### setGenericTag

    public Chunk setGenericTag(java.lang.String text)

Sets the generic tag `Chunk`.

The text for this tag can be retrieved with `PdfPageEvent`.

Parameters:
  `text` - the text for the tag
Returns:
  this `Chunk`

#### getImage

    public Image getImage()

Returns the image.

Returns:
  the image

#### setAction

    public Chunk setAction(PdfAction action)

Sets an action for this `Chunk`.

Parameters:
  `action` - the action
Returns:
  this `Chunk`

#### setAnchor

    public Chunk setAnchor(java.net.URL url)

Sets an anchor for this `Chunk`.

Parameters:
  `url` - the `URL` to link to
Returns:
  this `Chunk`

#### setAnchor

    public Chunk setAnchor(java.lang.String url)

Sets an anchor for this `Chunk`.

Parameters:
  `url` - the url to link to
Returns:
  this `Chunk`

#### setNewPage

    public Chunk setNewPage()

Sets a new page tag..

Returns:
  this `Chunk`

#### setAnnotation

    public Chunk setAnnotation(PdfAnnotation annotation)

Sets a generic annotation to this `Chunk`.

Parameters:
  `annotation` - the annotation
Returns:
  this `Chunk`

#### isContent

    public boolean isContent()

Description copied from interface: `Element`
Checks if this element is a content object. If not, it's a metadata object.

Specified by:
  `isContent` in interface `Element`
Returns:
  true if this is a 'content' element; false if this is a 'metadata' element
Since:
  iText 2.0.8
See Also:
  `Element.isContent()`

#### isNestable

    public boolean isNestable()

Description copied from interface: `Element`
Checks if this element is nestable.

Specified by:
  `isNestable` in interface `Element`
Returns:
  true if this element can be nested inside other elements.
Since:
  iText 2.0.8
See Also:
  `Element.isNestable()`

#### getHyphenation

    public HyphenationEvent getHyphenation()

Returns the hyphenation (if present).

Since:
  2.1.2

#### setCharacterSpacing

    public Chunk setCharacterSpacing(float charSpace)

Sets the character spacing.

Parameters:
  `charSpace` - the character spacing value
Returns:
  this `Chunk`

#### getCharacterSpacing

    public float getCharacterSpacing()

Gets the character spacing.

Returns:
  a value in float