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

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

### Field Summary

Fields
`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

Constructors
Constructor and Description
`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

Methods
`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).