Class PdfAnnotation

All Implemented Interfaces:
IAccessibleElement, Serializable
Direct Known Subclasses:
PdfFormField

public class PdfAnnotation extends PdfDictionary implements IAccessibleElement
A PdfAnnotation is a note that is associated with a page.
See Also:
  • Field Details

    • 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:
    • FLAGS_HIDDEN

      public static final int FLAGS_HIDDEN
      flagvalue
      See Also:
    • FLAGS_PRINT

      public static final int FLAGS_PRINT
      flagvalue
      See Also:
    • FLAGS_NOZOOM

      public static final int FLAGS_NOZOOM
      flagvalue
      See Also:
    • FLAGS_NOROTATE

      public static final int FLAGS_NOROTATE
      flagvalue
      See Also:
    • FLAGS_NOVIEW

      public static final int FLAGS_NOVIEW
      flagvalue
      See Also:
    • FLAGS_READONLY

      public static final int FLAGS_READONLY
      flagvalue
      See Also:
    • FLAGS_LOCKED

      public static final int FLAGS_LOCKED
      flagvalue
      See Also:
    • FLAGS_TOGGLENOVIEW

      public static final int FLAGS_TOGGLENOVIEW
      flagvalue
      See Also:
    • FLAGS_LOCKEDCONTENTS

      public static final int FLAGS_LOCKEDCONTENTS
      flagvalue PDF 1.7
      See Also:
    • 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:
    • MARKUP_UNDERLINE

      public static final int MARKUP_UNDERLINE
      attributevalue
      See Also:
    • MARKUP_STRIKEOUT

      public static final int MARKUP_STRIKEOUT
      attributevalue
      See Also:
    • MARKUP_SQUIGGLY

      public static final int MARKUP_SQUIGGLY
      attributevalue
      Since:
      2.1.3
      See Also:
    • 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 HashSet<PdfTemplate> 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.
    • role

      protected PdfName role
    • accessibleAttributes

      protected HashMap<PdfName,PdfObject> accessibleAttributes
    • id

      private AccessibleElementId id
  • Constructor Details

    • 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 Details

    • createScreen

      public static PdfAnnotation createScreen(PdfWriter writer, Rectangle rect, String clipTitle, PdfFileSpecification fs, String mimeType, boolean playOnDisplay) throws IOException
      Creates a screen PdfAnnotation
      Parameters:
      writer -
      rect -
      clipTitle -
      fs -
      mimeType -
      playOnDisplay -
      Returns:
      a screen PdfAnnotation
      Throws:
      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, String title, String contents, boolean open, 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, 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, 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, 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, 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, String contents, int type, float[] quadPoints)
    • createStamp

      public static PdfAnnotation createStamp(PdfWriter writer, Rectangle rect, String contents, 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, String contents, float[][] inkList)
    • createFileAttachment

      public static PdfAnnotation createFileAttachment(PdfWriter writer, Rectangle rect, String contents, byte[] fileStore, String file, String fileDisplay) throws 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:
      IOException - on error
    • createFileAttachment

      public static PdfAnnotation createFileAttachment(PdfWriter writer, Rectangle rect, String contents, PdfFileSpecification fs) throws IOException
      Creates a file attachment annotation
      Parameters:
      writer -
      rect -
      contents -
      fs -
      Returns:
      the annotation
      Throws:
      IOException
    • createPopup

      public static PdfAnnotation createPopup(PdfWriter writer, Rectangle rect, String contents, boolean open)
      Adds a popup to your document.
      Parameters:
      writer -
      rect -
      contents -
      open -
      Returns:
      A PdfAnnotation
    • createPolygonPolyline

      public static PdfAnnotation createPolygonPolyline(PdfWriter writer, Rectangle rect, String contents, boolean polygon, PdfArray vertices)
      Creates a polygon or -line annotation
      Parameters:
      writer - the PdfWriter
      rect - the annotation position
      contents - the textual content of the annotation
      polygon - if true, the we're creating a polygon annotation, if false, a polyline
      vertices - an array with the vertices of the polygon or -line
      Since:
      5.0.2
    • 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, String state, PdfTemplate template)
    • setAppearanceState

      public void setAppearanceState(String state)
    • setColor

      public void setColor(BaseColor color)
    • setTitle

      public void setTitle(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 HashSet<PdfTemplate> 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(BaseColor color)
    • setMKBorderColor

      public void setMKBorderColor(BaseColor color)
    • setMKBackgroundColor

      public void setMKBackgroundColor(BaseColor color)
    • setMKNormalCaption

      public void setMKNormalCaption(String caption)
    • setMKRolloverCaption

      public void setMKRolloverCaption(String caption)
    • setMKAlternateCaption

      public void setMKAlternateCaption(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(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).
    • applyCTM

      public void applyCTM(AffineTransform ctm)
    • toPdf

      public void toPdf(PdfWriter writer, OutputStream os) throws IOException
      Description copied from class: PdfDictionary
      Writes the PDF representation of this PdfDictionary as an array of byte to the given OutputStream.
      Overrides:
      toPdf in class PdfDictionary
      Parameters:
      writer - for backwards compatibility
      os - the OutputStream to write the bytes to.
      Throws:
      IOException
    • getAccessibleAttribute

      public PdfObject getAccessibleAttribute(PdfName key)
      Description copied from interface: IAccessibleElement
      Get the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E).
      Specified by:
      getAccessibleAttribute in interface IAccessibleElement
      Parameters:
      key -
      Returns:
    • setAccessibleAttribute

      public void setAccessibleAttribute(PdfName key, PdfObject value)
      Description copied from interface: IAccessibleElement
      Set the attribute of accessible element (everything in A dictionary + Lang, Alt, ActualText, E).
      Specified by:
      setAccessibleAttribute in interface IAccessibleElement
      Parameters:
      key -
      value -
    • getAccessibleAttributes

      public HashMap<PdfName,PdfObject> getAccessibleAttributes()
      Description copied from interface: IAccessibleElement
      Gets all the properties of accessible element.
      Specified by:
      getAccessibleAttributes in interface IAccessibleElement
      Returns:
    • getRole

      public PdfName getRole()
      Description copied from interface: IAccessibleElement
      Gets the role of the accessible element.
      Specified by:
      getRole in interface IAccessibleElement
      Returns:
    • setRole

      public void setRole(PdfName role)
      Description copied from interface: IAccessibleElement
      Sets the role of the accessiblee element. Set role to null if you don't want to tag this element. Note that all child elements won't also be tagged.
      Specified by:
      setRole in interface IAccessibleElement
      Parameters:
      role -
    • getId

      public AccessibleElementId getId()
      Specified by:
      getId in interface IAccessibleElement
    • setId

      public void setId(AccessibleElementId id)
      Specified by:
      setId in interface IAccessibleElement
    • isInline

      public boolean isInline()
      Specified by:
      isInline in interface IAccessibleElement