Class Chunk

  • All Implemented Interfaces:
    Element

    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 Chunks. 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 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
      • 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
      • PDFANNOTATION

        public static final java.lang.String PDFANNOTATION
        Key for annotation.
        See Also:
        Constant Field Values
      • ENCODING

        public static final java.lang.String ENCODING
        Key for encoding.
        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).
        Returns:
        Hyphenation event
        Since:
        2.1.2