## com.lowagie.text.pdf
Class PdfAnnotation

    java.lang.Object
      com.lowagie.text.pdf.PdfObject
          com.lowagie.text.pdf.PdfDictionary
              com.lowagie.text.pdf.PdfAnnotation

Direct Known Subclasses:
  PdfFormField

    public class PdfAnnotation

extends PdfDictionary

A `PdfAnnotation` is a note that is associated with a page.

See Also:
  `PdfDictionary`

Nested Class Summary
`static class` `PdfAnnotation.PdfImportedLink` This class processes links from imported pages so that they may be active.

Field Summary
`static PdfName` `AA_BLUR` attributevalue
`static PdfName` `AA_DOWN` attributevalue
`static PdfName` `AA_ENTER` attributevalue
`static PdfName` `AA_EXIT` attributevalue
`static PdfName` `AA_FOCUS` attributevalue
`static PdfName` `AA_JS_CHANGE` attributevalue
`static PdfName` `AA_JS_FORMAT` attributevalue
`static PdfName` `AA_JS_KEY` attributevalue
`static PdfName` `AA_JS_OTHER_CHANGE` attributevalue
`static PdfName` `AA_UP` attributevalue
`protected boolean` `annotation`
`static PdfName` `APPEARANCE_DOWN` appearance attributename
`static PdfName` `APPEARANCE_NORMAL` appearance attributename
`static PdfName` `APPEARANCE_ROLLOVER` appearance attributename
`static int` `FLAGS_HIDDEN` flagvalue
`static int` `FLAGS_INVISIBLE` flagvalue
`static int` `FLAGS_LOCKED` flagvalue
`static int` `FLAGS_NOROTATE` flagvalue
`static int` `FLAGS_NOVIEW` flagvalue
`static int` `FLAGS_NOZOOM` flagvalue
`static int` `FLAGS_PRINT` flagvalue
`static int` `FLAGS_READONLY` flagvalue
`static int` `FLAGS_TOGGLENOVIEW` flagvalue
`protected boolean` `form`
`static PdfName` `HIGHLIGHT_INVERT` highlight attributename
`static PdfName` `HIGHLIGHT_NONE` highlight attributename
`static PdfName` `HIGHLIGHT_OUTLINE` highlight attributename
`static PdfName` `HIGHLIGHT_PUSH` highlight attributename
`static PdfName` `HIGHLIGHT_TOGGLE` highlight attributename
`static int` `MARKUP_HIGHLIGHT` attributevalue
`static int` `MARKUP_SQUIGGLY` attributevalue
`static int` `MARKUP_STRIKEOUT` attributevalue
`static int` `MARKUP_UNDERLINE` attributevalue
`private int` `placeInPage` Holds value of property placeInPage.
`protected PdfIndirectReference` `reference` Reference to this annotation.
`protected java.util.HashMap` `templates`
`protected boolean` `used` Holds value of property used.
`protected PdfWriter` `writer`

Fields inherited from class com.lowagie.text.pdf.PdfDictionary
`CATALOG, FONT, hashMap, OUTLINES, PAGE, PAGES`

Fields inherited from class com.lowagie.text.pdf.PdfObject
`ARRAY, BOOLEAN, bytes, DICTIONARY, INDIRECT, indRef, NAME, NOTHING, NULL, NUMBER, STREAM, STRING, TEXT_PDFDOCENCODING, TEXT_UNICODE, type`

Constructor Summary
`PdfAnnotation(PdfWriter writer, float llx, float lly, float urx, float ury, PdfAction action)` Constructs a new `PdfAnnotation` of subtype link (Action).
`PdfAnnotation(PdfWriter writer, float llx, float lly, float urx, float ury, PdfString title, PdfString content)` Constructs a new `PdfAnnotation` of subtype text.
`PdfAnnotation(PdfWriter writer, Rectangle rect)`

Method Summary
`static PdfAnnotation` `createFileAttachment(PdfWriter writer, Rectangle rect, java.lang.String contents, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay)` Creates a file attachment annotation.
`static PdfAnnotation` `createFileAttachment(PdfWriter writer, Rectangle rect, java.lang.String contents, PdfFileSpecification fs)` Creates a file attachment annotation
`static PdfAnnotation` `createFreeText(PdfWriter writer, Rectangle rect, java.lang.String contents, PdfContentByte defaultAppearance)` Add some free text to the document.
`static PdfAnnotation` `createInk(PdfWriter writer, Rectangle rect, java.lang.String contents, float[][] inkList)`
`static PdfAnnotation` `createLine(PdfWriter writer, Rectangle rect, java.lang.String contents, float x1, float y1, float x2, float y2)` Adds a line to the document.
`protected static PdfAnnotation` `createLink(PdfWriter writer, Rectangle rect, PdfName highlight)` Creates a link.
`static PdfAnnotation` `createLink(PdfWriter writer, Rectangle rect, PdfName highlight, int page, PdfDestination dest)` Creates an Annotation with a PdfDestination.
`static PdfAnnotation` `createLink(PdfWriter writer, Rectangle rect, PdfName highlight, PdfAction action)` Creates an Annotation with an Action.
`static PdfAnnotation` `createLink(PdfWriter writer, Rectangle rect, PdfName highlight, java.lang.String namedDestination)` Creates an Annotation with an local destination.
`static PdfAnnotation` `createMarkup(PdfWriter writer, Rectangle rect, java.lang.String contents, int type, float[] quadPoints)`
`static PdfAnnotation` `createPopup(PdfWriter writer, Rectangle rect, java.lang.String contents, boolean open)` Adds a popup to your document.
`static PdfAnnotation` `createScreen(PdfWriter writer, Rectangle rect, java.lang.String clipTitle, PdfFileSpecification fs, java.lang.String mimeType, boolean playOnDisplay)` Creates a screen PdfAnnotation
`static PdfAnnotation` `createSquareCircle(PdfWriter writer, Rectangle rect, java.lang.String contents, boolean square)` Adds a circle or a square that shows a tooltip when you pass over it.
`static PdfAnnotation` `createStamp(PdfWriter writer, Rectangle rect, java.lang.String contents, java.lang.String name)` Adds a Stamp to your document.
`static PdfAnnotation` `createText(PdfWriter writer, Rectangle rect, java.lang.String title, java.lang.String contents, boolean open, java.lang.String icon)`
`PdfIndirectReference` `getIndirectReference()` Returns an indirect reference to the annotation
`(package private) PdfDictionary` `getMK()`
`static PdfArray` `getMKColor(java.awt.Color color)`
`int` `getPlaceInPage()` Getter for property placeInPage.
`java.util.HashMap` `getTemplates()`
`boolean` `isAnnotation()` Getter for property annotation.
`boolean` `isForm()` Getter for property form.
`boolean` `isUsed()` Getter for property used.
`void` `setAction(PdfAction action)`
`void` `setAdditionalActions(PdfName key, PdfAction action)`
`void` `setAppearance(PdfName ap, PdfTemplate template)`
`void` `setAppearance(PdfName ap, java.lang.String state, PdfTemplate template)`
`void` `setAppearanceState(java.lang.String state)`
`void` `setBorder(PdfBorderArray border)`
`void` `setBorderStyle(PdfBorderDictionary border)`
`void` `setColor(java.awt.Color color)`
`void` `setDefaultAppearanceString(PdfContentByte cb)`
`void` `setFlags(int flags)`
`void` `setHighlighting(PdfName highlight)` Sets the annotation's highlighting mode.
`void` `setLayer(PdfOCG layer)` Sets the layer this annotation belongs to.
`void` `setMKAlternateCaption(java.lang.String caption)`
`void` `setMKAlternateIcon(PdfTemplate template)`
`void` `setMKBackgroundColor(java.awt.Color color)`
`void` `setMKBorderColor(java.awt.Color color)`
`void` `setMKIconFit(PdfName scale, PdfName scalingType, float leftoverLeft, float leftoverBottom, boolean fitInBounds)`
`void` `setMKNormalCaption(java.lang.String caption)`
`void` `setMKNormalIcon(PdfTemplate template)`
`void` `setMKRolloverCaption(java.lang.String caption)`
`void` `setMKRolloverIcon(PdfTemplate template)`
`void` `setMKRotation(int rotation)`
`void` `setMKTextPosition(int tp)`
`void` `setName(java.lang.String name)` Sets the name of the annotation.
`void` `setPage()`
`void` `setPage(int page)`
`void` `setPlaceInPage(int placeInPage)` Places the annotation in a specified page that must be greater or equal to the current one.
`void` `setPopup(PdfAnnotation popup)`
`void` `setRotate(int v)`
`void` `setTitle(java.lang.String title)`
`void` `setUsed()` Setter for property used.

Methods inherited from class com.lowagie.text.pdf.PdfDictionary
`contains, get, getAsArray, getAsBoolean, getAsDict, getAsIndirectObject, getAsName, getAsNumber, getAsStream, getAsString, getDirectObject, getKeys, isCatalog, isFont, isOutlineTree, isPage, isPages, merge, mergeDifferent, put, putAll, putEx, remove, size, toPdf, toString`

Methods inherited from class com.lowagie.text.pdf.PdfObject
`canBeInObjStm, getBytes, getIndRef, isArray, isBoolean, isDictionary, isIndirect, isName, isNull, isNumber, isStream, isString, length, setContent, setIndRef, type`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### HIGHLIGHT_NONE

    public static final PdfName HIGHLIGHT_NONE

  highlight attributename

### HIGHLIGHT_INVERT

    public static final PdfName HIGHLIGHT_INVERT

  highlight attributename

### HIGHLIGHT_OUTLINE

    public static final PdfName HIGHLIGHT_OUTLINE

  highlight attributename

### HIGHLIGHT_PUSH

    public static final PdfName HIGHLIGHT_PUSH

  highlight attributename

### HIGHLIGHT_TOGGLE

    public static final PdfName HIGHLIGHT_TOGGLE

  highlight attributename

### FLAGS_INVISIBLE

    public static final int FLAGS_INVISIBLE

  flagvalue

  See Also:
    Constant Field Values

### FLAGS_HIDDEN

    public static final int FLAGS_HIDDEN

  flagvalue

  See Also:
    Constant Field Values

### FLAGS_PRINT

    public static final int FLAGS_PRINT

  flagvalue

  See Also:
    Constant Field Values

### FLAGS_NOZOOM

    public static final int FLAGS_NOZOOM

  flagvalue

  See Also:
    Constant Field Values

### FLAGS_NOROTATE

    public static final int FLAGS_NOROTATE

  flagvalue

  See Also:
    Constant Field Values

### FLAGS_NOVIEW

    public static final int FLAGS_NOVIEW

  flagvalue

  See Also:
    Constant Field Values

### FLAGS_READONLY

    public static final int FLAGS_READONLY

  flagvalue

  See Also:
    Constant Field Values

### FLAGS_LOCKED

    public static final int FLAGS_LOCKED

  flagvalue

  See Also:
    Constant Field Values

### FLAGS_TOGGLENOVIEW

    public static final int FLAGS_TOGGLENOVIEW

  flagvalue

  See Also:
    Constant Field Values

### APPEARANCE_NORMAL

    public static final PdfName APPEARANCE_NORMAL

  appearance attributename

### APPEARANCE_ROLLOVER

    public static final PdfName APPEARANCE_ROLLOVER

  appearance attributename

### APPEARANCE_DOWN

    public static final PdfName APPEARANCE_DOWN

  appearance attributename

### AA_ENTER

    public static final PdfName AA_ENTER

  attributevalue

### AA_EXIT

    public static final PdfName AA_EXIT

  attributevalue

### AA_DOWN

    public static final PdfName AA_DOWN

  attributevalue

### AA_UP

    public static final PdfName AA_UP

  attributevalue

### AA_FOCUS

    public static final PdfName AA_FOCUS

  attributevalue

### AA_BLUR

    public static final PdfName AA_BLUR

  attributevalue

### AA_JS_KEY

    public static final PdfName AA_JS_KEY

  attributevalue

### AA_JS_FORMAT

    public static final PdfName AA_JS_FORMAT

  attributevalue

### AA_JS_CHANGE

    public static final PdfName AA_JS_CHANGE

  attributevalue

### AA_JS_OTHER_CHANGE

    public static final PdfName AA_JS_OTHER_CHANGE

  attributevalue

### MARKUP_HIGHLIGHT

    public static final int MARKUP_HIGHLIGHT

  attributevalue

  See Also:
    Constant Field Values

### MARKUP_UNDERLINE

    public static final int MARKUP_UNDERLINE

  attributevalue

  See Also:
    Constant Field Values

### MARKUP_STRIKEOUT

    public static final int MARKUP_STRIKEOUT

  attributevalue

  See Also:
    Constant Field Values

### MARKUP_SQUIGGLY

    public static final int MARKUP_SQUIGGLY

  attributevalue

  Since:
    2.1.3
  See Also:
    Constant Field Values

### writer

    protected PdfWriter writer

### reference

    protected PdfIndirectReference reference

  Reference to this annotation.

  Since:
    2.1.6; was removed in 2.1.5, but restored in 2.1.6

### templates

    protected java.util.HashMap templates

### form

    protected boolean form

### annotation

    protected boolean annotation

### used

    protected boolean used

  Holds value of property used.

### placeInPage

    private int placeInPage

  Holds value of property placeInPage.

Constructor Detail

### PdfAnnotation

    public PdfAnnotation(PdfWriter writer,
                         Rectangle rect)

### PdfAnnotation

    public PdfAnnotation(PdfWriter writer,
                         float llx,
                         float lly,
                         float urx,
                         float ury,
                         PdfString title,
                         PdfString content)

  Constructs a new `PdfAnnotation` of subtype text.

  Parameters:
    `writer` -
    `llx` -
    `lly` -
    `urx` -
    `ury` -
    `title` -
    `content` -

### PdfAnnotation

    public PdfAnnotation(PdfWriter writer,
                         float llx,
                         float lly,
                         float urx,
                         float ury,
                         PdfAction action)

  Constructs a new `PdfAnnotation` of subtype link (Action).

  Parameters:
    `writer` -
    `llx` -
    `lly` -
    `urx` -
    `ury` -
    `action` -

Method Detail

### createScreen

    public static PdfAnnotation createScreen(PdfWriter writer,
                                             Rectangle rect,
                                             java.lang.String clipTitle,
                                             PdfFileSpecification fs,
                                             java.lang.String mimeType,
                                             boolean playOnDisplay)
                                      throws java.io.IOException

  Creates a screen PdfAnnotation

  Parameters:
    `writer` -
    `rect` -
    `clipTitle` -
    `fs` -
    `mimeType` -
    `playOnDisplay` -
  Returns:
    a screen PdfAnnotation
  Throws:
    `java.io.IOException`

### getIndirectReference

    public PdfIndirectReference getIndirectReference()

  Returns an indirect reference to the annotation

  Returns:
    the indirect reference

### createText

    public static PdfAnnotation createText(PdfWriter writer,
                                           Rectangle rect,
                                           java.lang.String title,
                                           java.lang.String contents,
                                           boolean open,
                                           java.lang.String icon)

  Parameters:
    `writer` -
    `rect` -
    `title` -
    `contents` -
    `open` -
    `icon` -
  Returns:
    a PdfAnnotation

### createLink

    protected static PdfAnnotation createLink(PdfWriter writer,
                                              Rectangle rect,
                                              PdfName highlight)

  Creates a link.

  Parameters:
    `writer` -
    `rect` -
    `highlight` -
  Returns:
    A PdfAnnotation

### createLink

    public static PdfAnnotation createLink(PdfWriter writer,
                                           Rectangle rect,
                                           PdfName highlight,
                                           PdfAction action)

  Creates an Annotation with an Action.

  Parameters:
    `writer` -
    `rect` -
    `highlight` -
    `action` -
  Returns:
    A PdfAnnotation

### createLink

    public static PdfAnnotation createLink(PdfWriter writer,
                                           Rectangle rect,
                                           PdfName highlight,
                                           java.lang.String namedDestination)

  Creates an Annotation with an local destination.

  Parameters:
    `writer` -
    `rect` -
    `highlight` -
    `namedDestination` -
  Returns:
    A PdfAnnotation

### createLink

    public static PdfAnnotation createLink(PdfWriter writer,
                                           Rectangle rect,
                                           PdfName highlight,
                                           int page,
                                           PdfDestination dest)

  Creates an Annotation with a PdfDestination.

  Parameters:
    `writer` -
    `rect` -
    `highlight` -
    `page` -
    `dest` -
  Returns:
    A PdfAnnotation

### createFreeText

    public static PdfAnnotation createFreeText(PdfWriter writer,
                                               Rectangle rect,
                                               java.lang.String contents,
                                               PdfContentByte defaultAppearance)

  Add some free text to the document.

  Parameters:
    `writer` -
    `rect` -
    `contents` -
    `defaultAppearance` -
  Returns:
    A PdfAnnotation

### createLine

    public static PdfAnnotation createLine(PdfWriter writer,
                                           Rectangle rect,
                                           java.lang.String contents,
                                           float x1,
                                           float y1,
                                           float x2,
                                           float y2)

  Adds a line to the document. Move over the line and a tooltip is shown.

  Parameters:
    `writer` -
    `rect` -
    `contents` -
    `x1` -
    `y1` -
    `x2` -
    `y2` -
  Returns:
    A PdfAnnotation

### createSquareCircle

    public static PdfAnnotation createSquareCircle(PdfWriter writer,
                                                   Rectangle rect,
                                                   java.lang.String contents,
                                                   boolean square)

  Adds a circle or a square that shows a tooltip when you pass over it.

  Parameters:
    `writer` -
    `rect` -
    `contents` - The tooltip
    `square` - true if you want a square, false if you want a circle
  Returns:
    A PdfAnnotation

### createMarkup

    public static PdfAnnotation createMarkup(PdfWriter writer,
                                             Rectangle rect,
                                             java.lang.String contents,
                                             int type,
                                             float[] quadPoints)

### createStamp

    public static PdfAnnotation createStamp(PdfWriter writer,
                                            Rectangle rect,
                                            java.lang.String contents,
                                            java.lang.String name)

  Adds a Stamp to your document. Move over the stamp and a tooltip is shown

  Parameters:
    `writer` -
    `rect` -
    `contents` -
    `name` -
  Returns:
    A PdfAnnotation

### createInk

    public static PdfAnnotation createInk(PdfWriter writer,
                                          Rectangle rect,
                                          java.lang.String contents,
                                          float[][] inkList)

### createFileAttachment

    public static PdfAnnotation createFileAttachment(PdfWriter writer,
                                                     Rectangle rect,
                                                     java.lang.String contents,
                                                     byte[] fileStore,
                                                     java.lang.String file,
                                                     java.lang.String fileDisplay)
                                              throws java.io.IOException

  Creates a file attachment annotation.

  Parameters:
    `writer` - the `PdfWriter`
    `rect` - the dimensions in the page of the annotation
    `contents` - the file description
    `fileStore` - an array with the file. If it's `null` the file will be read from the disk
    `file` - the path to the file. It will only be used if `fileStore` is not `null`
    `fileDisplay` - the actual file name stored in the pdf
  Returns:
    the annotation
  Throws:
    `java.io.IOException` - on error

### createFileAttachment

    public static PdfAnnotation createFileAttachment(PdfWriter writer,
                                                     Rectangle rect,
                                                     java.lang.String contents,
                                                     PdfFileSpecification fs)
                                              throws java.io.IOException

  Creates a file attachment annotation

  Parameters:
    `writer` -
    `rect` -
    `contents` -
    `fs` -
  Returns:
    the annotation
  Throws:
    `java.io.IOException`

### createPopup

    public static PdfAnnotation createPopup(PdfWriter writer,
                                            Rectangle rect,
                                            java.lang.String contents,
                                            boolean open)

  Adds a popup to your document.

  Parameters:
    `writer` -
    `rect` -
    `contents` -
    `open` -
  Returns:
    A PdfAnnotation

### setDefaultAppearanceString

    public void setDefaultAppearanceString(PdfContentByte cb)

### setFlags

    public void setFlags(int flags)

### setBorder

    public void setBorder(PdfBorderArray border)

### setBorderStyle

    public void setBorderStyle(PdfBorderDictionary border)

### setHighlighting

    public void setHighlighting(PdfName highlight)

  Sets the annotation's highlighting mode. The values can be `HIGHLIGHT_NONE`, `HIGHLIGHT_INVERT`, `HIGHLIGHT_OUTLINE` and `HIGHLIGHT_PUSH`;

  Parameters:
    `highlight` - the annotation's highlighting mode

### setAppearance

    public void setAppearance(PdfName ap,
                              PdfTemplate template)

### setAppearance

    public void setAppearance(PdfName ap,
                              java.lang.String state,
                              PdfTemplate template)

### setAppearanceState

    public void setAppearanceState(java.lang.String state)

### setColor

    public void setColor(java.awt.Color color)

### setTitle

    public void setTitle(java.lang.String title)

### setPopup

    public void setPopup(PdfAnnotation popup)

### setAction

    public void setAction(PdfAction action)

### setAdditionalActions

    public void setAdditionalActions(PdfName key,
                                     PdfAction action)

### isUsed

    public boolean isUsed()

  Getter for property used.

  Returns:
    Value of property used.

### setUsed

    public void setUsed()

  Setter for property used.

### getTemplates

    public java.util.HashMap getTemplates()

### isForm

    public boolean isForm()

  Getter for property form.

  Returns:
    Value of property form.

### isAnnotation

    public boolean isAnnotation()

  Getter for property annotation.

  Returns:
    Value of property annotation.

### setPage

    public void setPage(int page)

### setPage

    public void setPage()

### getPlaceInPage

    public int getPlaceInPage()

  Getter for property placeInPage.

  Returns:
    Value of property placeInPage.

### setPlaceInPage

    public void setPlaceInPage(int placeInPage)

  Places the annotation in a specified page that must be greater or equal to the current one. With `PdfStamper` the page can be any. The first page is 1.

  Parameters:
    `placeInPage` - New value of property placeInPage.

### setRotate

    public void setRotate(int v)

### getMK

    PdfDictionary getMK()

### setMKRotation

    public void setMKRotation(int rotation)

### getMKColor

    public static PdfArray getMKColor(java.awt.Color color)

### setMKBorderColor

    public void setMKBorderColor(java.awt.Color color)

### setMKBackgroundColor

    public void setMKBackgroundColor(java.awt.Color color)

### setMKNormalCaption

    public void setMKNormalCaption(java.lang.String caption)

### setMKRolloverCaption

    public void setMKRolloverCaption(java.lang.String caption)

### setMKAlternateCaption

    public void setMKAlternateCaption(java.lang.String caption)

### setMKNormalIcon

    public void setMKNormalIcon(PdfTemplate template)

### setMKRolloverIcon

    public void setMKRolloverIcon(PdfTemplate template)

### setMKAlternateIcon

    public void setMKAlternateIcon(PdfTemplate template)

### setMKIconFit

    public void setMKIconFit(PdfName scale,
                             PdfName scalingType,
                             float leftoverLeft,
                             float leftoverBottom,
                             boolean fitInBounds)

### setMKTextPosition

    public void setMKTextPosition(int tp)

### setLayer

    public void setLayer(PdfOCG layer)

  Sets the layer this annotation belongs to.

  Parameters:
    `layer` - the layer this annotation belongs to

### setName

    public void setName(java.lang.String name)

  Sets the name of the annotation. With this name the annotation can be identified among all the annotations on a page (it has to be unique).

Hosted by Hostbasket