com.lowagie.text.pdf

## Class PdfChunk

- java.lang.Object
- - com.lowagie.text.pdf.PdfChunk

-     public class PdfChunk
      extends java.lang.Object

  A `PdfChunk` is the PDF translation of a `Chunk`.

  A `PdfChunk` is a `PdfString` in a certain `PdfFont` and `Color`.

  See Also:
    `PdfString`, `Chunk`, `Font`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.HashMap` | `attributes` Metric attributes.
    `protected BaseFont` | `baseFont`
    `protected boolean` | `changeLeading` Indicates if the height and offset of the Image has to be taken into account
    `protected java.lang.String` | `encoding` The encoding.
    `protected PdfFont` | `font` The font for this `PdfChunk`.
    `protected Image` | `image` The image in this `PdfChunk`, if it has one
    `private static float` | `ITALIC_ANGLE`
    `private static java.util.HashMap` | `keysAttributes` The allowed attributes in variable `attributes`.
    `private static java.util.HashMap` | `keysNoStroke` The allowed attributes in variable `noStroke`.
    `protected boolean` | `newlineSplit` `true` if the chunk split was cause by a newline.
    `protected java.util.HashMap` | `noStroke` Non metric attributes.
    `protected float` | `offsetX` The offset in the x direction for the image
    `protected float` | `offsetY` The offset in the y direction for the image
    `private static char[]` | `singleSpace`
    `protected SplitCharacter` | `splitCharacter`
    `private static PdfChunk[]` | `thisChunk`
    `protected java.lang.String` | `value` The value of this object.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PdfChunk(Chunk chunk, PdfAction action)` Constructs a `PdfChunk`-object.
    `PdfChunk(java.lang.String string, PdfChunk other)` Constructs a `PdfChunk`-object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `(package private) void` | `adjustLeft(float newValue)` Correction for the tab position based on the left starting position.
    `boolean` | `changeLeading()`
    `(package private) java.awt.Color` | `color()` Returns the color of this `Chunk`.
    `(package private) PdfFont` | `font()` Returns the font of this `Chunk`.
    `(package private) java.lang.Object` | `getAttribute(java.lang.String name)` Gets an attribute.
    `(package private) float` | `getCharWidth(int c)`
    `(package private) java.lang.String` | `getEncoding()` Gets the encoding of this string.
    `(package private) Image` | `getImage()` Gets the image in the `PdfChunk`.
    `(package private) float` | `getImageOffsetX()` Gets the image offset in the x direction
    `(package private) float` | `getImageOffsetY()` Gets the image offset in the y direction
    `float` | `getTextRise()` Gets the text displacement relative to the baseline.
    `int` | `getUnicodeEquivalent(int c)` Gets the Unicode equivalent to a CID.
    `float` | `getWidthCorrected(float charSpacing, float wordSpacing)` Gets the width of the `PdfChunk` taking into account the extra character and word spacing.
    `protected int` | `getWord(java.lang.String text, int start)`
    `(package private) boolean` | `isAttribute(java.lang.String name)` Checks if the attribute exists.
    `(package private) boolean` | `isExtSplitCharacter(int start, int current, int end, char[] cc, PdfChunk[] ck)`
    `(package private) boolean` | `isHorizontalSeparator()` Checks if this `PdfChunk` is a horizontal Separator Chunk.
    `(package private) boolean` | `isImage()` Checks if there is an image in the `PdfChunk`.
    `boolean` | `isNewlineSplit()` Checks if the `PdfChunk` split was caused by a newline.
    `(package private) boolean` | `isSeparator()` Checks if this `PdfChunk` is a Separator Chunk.
    `(package private) boolean` | `isSpecialEncoding()` Tells you if this string is in Chinese, Japanese, Korean or Identity-H.
    `(package private) boolean` | `isStroked()` Checks if this `PdfChunk` needs some special metrics handling.
    `(package private) boolean` | `isTab()` Checks if this `PdfChunk` is a tab Chunk.
    `(package private) int` | `length()`
    `(package private) int` | `lengthUtf32()`
    `static boolean` | `noPrint(int c)`
    `(package private) void` | `setImageOffsetX(float offsetX)` Sets the image offset in the x direction
    `(package private) void` | `setImageOffsetY(float offsetY)` Sets the image offset in the y direction
    `(package private) void` | `setValue(java.lang.String value)` sets the value.
    `(package private) PdfChunk` | `split(float width)` Splits this `PdfChunk` if it's too long for the given width.
    `java.lang.String` | `toString()`
    `(package private) java.lang.String` | `trim(java.lang.String string)` Removes all the ' ' and '-'-characters on the right of a `String`.
    `float` | `trimFirstSpace()`
    `float` | `trimLastSpace()` Trims the last space.
    `(package private) PdfChunk` | `truncate(float width)` Truncates this `PdfChunk` if it's too long for the given width.
    `(package private) float` | `width()` Returns the width of this `PdfChunk`.

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

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

- - ### Field Detail

    - #### singleSpace

          private static final char[] singleSpace

    - #### thisChunk

          private static final PdfChunk[] thisChunk

    - #### ITALIC_ANGLE

          private static final float ITALIC_ANGLE

      See Also:
        Constant Field Values

    - #### keysAttributes

          private static final java.util.HashMap keysAttributes

      The allowed attributes in variable `attributes`.

    - #### keysNoStroke

          private static final java.util.HashMap keysNoStroke

      The allowed attributes in variable `noStroke`.

    - #### value

          protected java.lang.String value

      The value of this object.

    - #### encoding

          protected java.lang.String encoding

      The encoding.

    - #### font

          protected PdfFont font

      The font for this `PdfChunk`.

    - #### baseFont

          protected BaseFont baseFont

    - #### splitCharacter

          protected SplitCharacter splitCharacter

    - #### attributes

          protected java.util.HashMap attributes

      Metric attributes.

      This attributes require the measurement of characters widths when rendering such as underline.

    - #### noStroke

          protected java.util.HashMap noStroke

      Non metric attributes.

      This attributes do not require the measurement of characters widths when rendering such as Color.

    - #### newlineSplit

          protected boolean newlineSplit

      `true` if the chunk split was cause by a newline.

    - #### image

          protected Image image

      The image in this `PdfChunk`, if it has one

    - #### offsetX

          protected float offsetX

      The offset in the x direction for the image

    - #### offsetY

          protected float offsetY

      The offset in the y direction for the image

    - #### changeLeading

          protected boolean changeLeading

      Indicates if the height and offset of the Image has to be taken into account

  - ### Constructor Detail

    - #### PdfChunk

          PdfChunk(java.lang.String string,
                  PdfChunk other)

      Constructs a `PdfChunk`-object.
      Parameters:
        `string` - the content of the `PdfChunk`-object
        `other` - Chunk with the same style you want for the new Chunk

    - #### PdfChunk

          PdfChunk(Chunk chunk,
                  PdfAction action)

      Constructs a `PdfChunk`-object.
      Parameters:
        `chunk` - the original `Chunk`-object
        `action` - the `PdfAction` if the `Chunk` comes from an `Anchor`

  - ### Method Detail

    - #### getUnicodeEquivalent

          public int getUnicodeEquivalent(int c)

      Gets the Unicode equivalent to a CID. The (inexistent) CID is translated as '\n'. It has only meaning with CJK fonts with Identity encoding.
      Parameters:
        `c` - the CID code
      Returns:
        the Unicode equivalent

    - #### getWord

          protected int getWord(java.lang.String text,
                    int start)

    - #### split

          PdfChunk split(float width)

      Splits this `PdfChunk` if it's too long for the given width.

      Returns null if the `PdfChunk` wasn't truncated.

      Parameters:
        `width` - a given width
      Returns:
        the `PdfChunk` that doesn't fit into the width.

    - #### truncate

          PdfChunk truncate(float width)

      Truncates this `PdfChunk` if it's too long for the given width.

      Returns null if the `PdfChunk` wasn't truncated.

      Parameters:
        `width` - a given width
      Returns:
        the `PdfChunk` that doesn't fit into the width.

    - #### font

          PdfFont font()

      Returns the font of this `Chunk`.
      Returns:
        a `PdfFont`

    - #### color

          java.awt.Color color()

      Returns the color of this `Chunk`.
      Returns:
        a `Color`

    - #### width

          float width()

      Returns the width of this `PdfChunk`.
      Returns:
        a width

    - #### isNewlineSplit

          public boolean isNewlineSplit()

      Checks if the `PdfChunk` split was caused by a newline.
      Returns:
        `true` if the `PdfChunk` split was caused by a newline.

    - #### getWidthCorrected

          public float getWidthCorrected(float charSpacing,
                                float wordSpacing)

      Gets the width of the `PdfChunk` taking into account the extra character and word spacing.
      Parameters:
        `charSpacing` - the extra character spacing
        `wordSpacing` - the extra word spacing
      Returns:
        the calculated width

    - #### getTextRise

          public float getTextRise()

      Gets the text displacement relative to the baseline.
      Returns:
        a displacement in points

    - #### trimLastSpace

          public float trimLastSpace()

      Trims the last space.
      Returns:
        the width of the space trimmed, otherwise 0

    - #### trimFirstSpace

          public float trimFirstSpace()

    - #### getAttribute

          java.lang.Object getAttribute(java.lang.String name)

      Gets an attribute. The search is made in `attributes` and `noStroke`.
      Parameters:
        `name` - the attribute key
      Returns:
        the attribute value or null if not found

    - #### isAttribute

          boolean isAttribute(java.lang.String name)

      Checks if the attribute exists.
      Parameters:
        `name` - the attribute key
      Returns:
        `true` if the attribute exists

    - #### isStroked

          boolean isStroked()

      Checks if this `PdfChunk` needs some special metrics handling.
      Returns:
        `true` if this `PdfChunk` needs some special metrics handling.

    - #### isSeparator

          boolean isSeparator()

      Checks if this `PdfChunk` is a Separator Chunk.
      Returns:
        true if this chunk is a separator.
      Since:
        2.1.2

    - #### isHorizontalSeparator

          boolean isHorizontalSeparator()

      Checks if this `PdfChunk` is a horizontal Separator Chunk.
      Returns:
        true if this chunk is a horizontal separator.
      Since:
        2.1.2

    - #### isTab

          boolean isTab()

      Checks if this `PdfChunk` is a tab Chunk.
      Returns:
        true if this chunk is a separator.
      Since:
        2.1.2

    - #### adjustLeft

          void adjustLeft(float newValue)

      Correction for the tab position based on the left starting position.
      Parameters:
        `newValue` - the new value for the left X.
      Since:
        2.1.2

    - #### isImage

          boolean isImage()

      Checks if there is an image in the `PdfChunk`.
      Returns:
        `true` if an image is present

    - #### getImage

          Image getImage()

      Gets the image in the `PdfChunk`.
      Returns:
        the image or `null`

    - #### setImageOffsetX

          void setImageOffsetX(float offsetX)

      Sets the image offset in the x direction
      Parameters:
        `offsetX` - the image offset in the x direction

    - #### getImageOffsetX

          float getImageOffsetX()

      Gets the image offset in the x direction
      Returns:
        the image offset in the x direction

    - #### setImageOffsetY

          void setImageOffsetY(float offsetY)

      Sets the image offset in the y direction
      Parameters:
        `offsetY` - the image offset in the y direction

    - #### getImageOffsetY

          float getImageOffsetY()

      Gets the image offset in the y direction
      Returns:
        Gets the image offset in the y direction

    - #### setValue

          void setValue(java.lang.String value)

      sets the value.
      Parameters:
        `value` - content of the Chunk

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`
      See Also:
        `Object.toString()`

    - #### isSpecialEncoding

          boolean isSpecialEncoding()

      Tells you if this string is in Chinese, Japanese, Korean or Identity-H.
      Returns:
        true if the Chunk has a special encoding

    - #### getEncoding

          java.lang.String getEncoding()

      Gets the encoding of this string.
      Returns:
        a `String`

    - #### length

          int length()

    - #### lengthUtf32

          int lengthUtf32()

    - #### isExtSplitCharacter

          boolean isExtSplitCharacter(int start,
                                    int current,
                                    int end,
                                    char[] cc,
                                    PdfChunk[] ck)

    - #### trim

          java.lang.String trim(java.lang.String string)

      Removes all the ' ' and '-'-characters on the right of a `String`.

      Parameters:
        `string` - the `String`that has to be trimmed.``
      Returns:
        the trimmed `String`

    - #### changeLeading

          public boolean changeLeading()

    - #### getCharWidth

          float getCharWidth(int c)

    - #### noPrint

          public static boolean noPrint(int c)