# Class: MarkupAnnotation

## Core.Annotations. MarkupAnnotation

Represents an extendable Markup annotation. These annotations may optionally include a fill color, stroke color, and stroke thickness.

#### new MarkupAnnotation( [initializer])

  Creates a new instance of MarkupAnnotation.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `initializer` | object | <optional> | A map of values to auto-initialize certain properties of the annotation. You can only initialize properties defined on the annotation under the Members section (unless specified otherwise).

### Extends

- Core.Annotations.Annotation

### Members

#### Author

  The author of the annotation.

  ##### Type:

  - string
  Inherited From:
    - Core.Annotations.Annotation#Author

#### Color

  Gets or sets the annotation's stroke color.

  ##### Type:

  - Core.Annotations.Color
  Inherited From:
    - Core.Annotations.Annotation#Color

#### DateCreated

  Gets or sets the date the annotation was created.

  ##### Type:

  - Date

#### DateModified

  Gets or sets the date that the annotation was last modified.

  ##### Type:

  - Date
  Inherited From:
    - Core.Annotations.Annotation#DateModified

#### elementName

  Gets or sets the name of the annotation element in XFDF.

  This property cannot be initialized through the initializer.

  ##### Type:

  - string
  Inherited From:
    - Core.Annotations.Annotation#elementName

#### FillColor

  Gets or sets the color of the annotation's interior.

  ##### Type:

  - Core.Annotations.Color

#### Height

  Gets or sets the height of the annotation.

  ##### Type:

  - number
  Inherited From:
    - Core.Annotations.Annotation#Height

#### Hidden

  Gets or sets whether the annotation is hidden.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#Hidden

#### Id

  A unique identifier for the annotation. Corresponds to the name attribute in XFDF.

  ##### Type:

  - string
  Inherited From:
    - Core.Annotations.Annotation#Id

#### InReplyTo

  The Id of the annotation that this annotation is replying to or the parent annotation it is grouped with.

  ##### Type:

  - string
  Inherited From:
    - Core.Annotations.Annotation#InReplyTo

#### Invisible

  Gets or sets whether the annotation is invisible, only if it is an unknown annotation type. Generally for hiding annotations you should use "Hidden".

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#Invisible

#### IsAdded

  Gets or sets whether the annotation has been added since the last time the AnnotCommand was retrieved.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#IsAdded

#### IsClickableOutsideRect

  Gets or sets whether any parts of the annotation drawn outside of the rect are clickable.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#IsClickableOutsideRect

#### IsDeleted

  Gets or sets whether the annotation has been deleted since the last time the AnnotCommand was retrieved.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#IsDeleted

#### IsHoverable

  Gets or sets whether the annotation is hoverable or not. If it is hoverable then the IsHovering property will be true on the annotation when it is currently being hovered.

  ##### Type:

  - boolean

#### IsModified

  Gets or sets whether the annotation has been modified since the last time the AnnotCommand was retrieved.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#IsModified

#### Listable

  Gets or sets whether the annotation should be listed in annotation lists. If set to true the annotation also will not be selectable.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#Listable

#### Locked

  Gets or sets whether the annotation is locked or not. If it's locked it can't be edited or deleted, but the note can be edited.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#Locked

#### LockedContents

  Gets or sets whether the annotation contents are locked or not. If the contents are locked then note can't be edited but the annotation can be edited or deleted.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#LockedContents

#### MaintainAspectRatio

  Gets or sets if the annotation maintains aspect ratio when being resized.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#MaintainAspectRatio

#### NoDelete

  Gets or sets if this annotation can be deleted.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#NoDelete

#### NoMove

  Gets or sets whether or not the annotation can be moved.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#NoMove

#### NoResize

  Gets or sets if this annotation can be resized by the user.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#NoResize

#### NoRotate

  Gets or sets if this annotation can be rotated.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#NoRotate

#### NoView

  Gets or sets whether the annotation is visible on the screen. Differs from Hidden in that it can still be printed if the print flag is set.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#NoView

#### NoZoom

  Gets or sets if this annotation scales with the page.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#NoZoom

#### Opacity

  Gets or sets the opacity of the annotation.

  ##### Type:

  - number

#### PageNumber

  Gets or sets the page number of a document that the annotation appears on.

  ##### Type:

  - number
  Inherited From:
    - Core.Annotations.Annotation#PageNumber

#### Printable

  Gets or sets whether the annotation should be displayed when printing the page.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#Printable

#### ReadOnly

  Gets or sets whether the annotation is readonly or not. If it's readonly it can't be edited or deleted.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#ReadOnly

#### ReplyType

  The type of reply.

  ##### Type:

  - string
  Inherited From:
    - Core.Annotations.Annotation#ReplyType

#### Rotation

  Gets or sets the annotation's clockwise rotation in degrees. Valid values are 0, 90, 180 and 270. Only applies to Stamp, FreeText and Caret annotations.

  ##### Type:

  - number
  Inherited From:
    - Core.Annotations.Annotation#Rotation

#### RotationControlEnabled

  Enabled or disables the annotation's rotation control.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#RotationControlEnabled

#### selectionModel

  Gets or sets a selection model constructor for how an annotation gets selected.

  ##### Type:

  - Core.Annotations.SelectionModel
  Inherited From:
    - Core.Annotations.Annotation#selectionModel

#### StrokeColor

  Gets or sets the color of the annotation's stroke.

  ##### Type:

  - Core.Annotations.Color

#### StrokeThickness

  Gets or sets the width of the annotation's stroke outline.

  ##### Type:

  - number

#### Subject

  Represents the subject of the annotation. Default is the annotation's type.

  ##### Type:

  - string
  Inherited From:
    - Core.Annotations.Annotation#Subject

#### ToggleNoView

  Gets or sets whether the ToggleNoView flag is set on the annotation.

  ##### Type:

  - boolean
  Inherited From:
    - Core.Annotations.Annotation#ToggleNoView

#### ToolName

  The name of the tool that is used to create this annotation.

  ##### Type:

  - string
  Inherited From:
    - Core.Annotations.Annotation#ToolName

#### ViewState

  Gets or sets the viewer state (zoom, rotation, etc) that is associated with the annotation. This state can then be restored in the viewer at a later time.

  ##### Type:

  - string

#### Width

  Gets or sets the width of the annotation.

  ##### Type:

  - number
  Inherited From:
    - Core.Annotations.Annotation#Width

#### X

  Gets or sets the annotation's x-axis position.

  ##### Type:

  - number
  Inherited From:
    - Core.Annotations.Annotation#X

#### Y

  Gets or sets the annotation's y-axis position.

  ##### Type:

  - number
  Inherited From:
    - Core.Annotations.Annotation#Y

### Methods

#### addCustomAppearance(doc [, options])

  Adds a custom appearance to the annotation so that the annotation appears like the specified PDF page or object in the PDF page. This appearance will be used instead of the default WebViewer drawing of the annotation.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `doc` | Core.Document |  | the PDF document object.
  `options` | object | <optional> | An object that can contain the following optional parameters. ###### Properties
  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `pageNumber` | string | <optional> | 1 | Page number of source document to use for custom appearance.
  `objnum` | string | <optional> |  | The object number from the appearance document.
  `gennum` | string | <optional> |  | The generation number from the appearance document.
  `transparentBackground` | string | <optional> |  | Transparent background, default is true.

  Inherited From:
    - Core.Annotations.Annotation#addCustomAppearance

#### adjustRect()

  Adjusts the annotation's bounding rectangle to take into account changes to the annotation e.g. stroke thickness, start/end points, etc
  Inherited From:
    - Core.Annotations.Annotation#adjustRect

#### deleteCustomData(key)

  Deletes custom data associated with the given key.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `key` | string | The key for which to delete the associated data.

  Inherited From:
    - Core.Annotations.Annotation#deleteCustomData

#### deserialize(element, pageMatrix)

  Deserializes the xml element into the annotation

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `element` | Element | an xml element representing the annotation
  `pageMatrix` | object | the page matrix used to convert PDF coordinates to XOD coordinates.

  Inherited From:
    - Core.Annotations.Annotation#deserialize

#### disableRotationControl()

  Disables the rotation control for the annotation
  Inherited From:
    - Core.Annotations.Annotation#disableRotationControl

#### draw(ctx, pageMatrix)

  Draws the annotation on the provide canvas context, relative to the page. The point (0,0) coresponds to the top left corner of the page.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `ctx` | CanvasRenderingContext2D | The canvas context prepared to be drawn on.
  `pageMatrix` | object | The page matrix for the page that the annotation is on. You can get this object by calling getPageMatrix on the document object.

  Inherited From:
    - Core.Annotations.Annotation#draw

#### enableRotationControl()

  Enables the rotation control for the annotation
  Inherited From:
    - Core.Annotations.Annotation#enableRotationControl

#### getContentEditType()

  Returns the content edit type, if there is one. Only applicable to content edit placeholder annotations.
  Inherited From:
    - Core.Annotations.Annotation#getContentEditType

  ##### Returns:

  Type
    string

#### getContents()

  Gets the text content for the annotation. Contents may be displayed in an annotation's popup or directly on the page (in the case of FreeTextAnnotation).
  Inherited From:
    - Core.Annotations.Annotation#getContents

  ##### Returns:

  the text content for the annotation.
  Type
    string

#### getCustomData(key)

  Returns custom data associated with the given key.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `key` | string | The key for which to retrieve the associated data.

  Inherited From:
    - Core.Annotations.Annotation#getCustomData

  ##### Returns:

  value The custom data. If no data is available an empty string is returned.
  Type
    string

#### getFormFieldPlaceHolderType()

  Returns what type of form field place holder it is, if it is a form field place holder
  Inherited From:
    - Core.Annotations.Annotation#getFormFieldPlaceHolderType

  ##### Returns:

  Form field place holder type as described by the Form Field Annotations enum
  Type
    string

#### getGroupedChildren()

  Gets the list of group children to this annotation.
  Inherited From:
    - Core.Annotations.Annotation#getGroupedChildren

  ##### Returns:

  The list of group children
  Type
    Array.<Core.Annotations.Annotation>

#### getHeight()

  Gets the height of the annotation.
  Inherited From:
    - Core.Annotations.Annotation#getHeight

  ##### Returns:

  the height of the annotation.
  Type
    number

#### getInternal()

  Returns true if annotation is part of the original document, false otherwise.
  Inherited From:
    - Core.Annotations.Annotation#getInternal
  Deprecated:
    - Since version 8.3. Use isInternal instead.

  ##### Returns:

  Whether the annotation is internal to the document or not
  Type
    boolean

#### getPageNumber()

  Gets the page number of the annotation. Note: page number starts from 1.
  Inherited From:
    - Core.Annotations.Annotation#getPageNumber

  ##### Returns:

  The annotation's page number
  Type
    number

#### getRect()

  Get annotation bounding rectangle
  Inherited From:
    - Core.Annotations.Annotation#getRect

  ##### Returns:

  Type
    Core.Math.Rect

#### getRectPadding()

  Gets the padding that will be applied by default on the annotation's rectangle.
  Inherited From:
    - Core.Annotations.Annotation#getRectPadding

  ##### Returns:

  The amount of padding
  Type
    number

#### getReplies()

  Gets the list of replies to this annotation.
  Inherited From:
    - Core.Annotations.Annotation#getReplies

  ##### Returns:

  The list of replies
  Type
    Array.<Core.Annotations.Annotation>

#### getRichTextStyle()

  Gets the rich text style of the annotation.
  Inherited From:
    - Core.Annotations.Annotation#getRichTextStyle

  ##### Returns:

  the current rich text style
  Type
    Core.Annotations.Annotation.RichTextStyle

#### getStatus()

  Gets the status of the annotation, and returns an empty string if no status set.
  Inherited From:
    - Core.Annotations.Annotation#getStatus

  ##### Returns:

  The last status update.
  Type
    string

#### getWidth()

  Gets the width of the annotation.
  Inherited From:
    - Core.Annotations.Annotation#getWidth

  ##### Returns:

  the width of the annotation.
  Type
    number

#### getX()

  Gets the x position measured in page coordinates of an annotation.
  Inherited From:
    - Core.Annotations.Annotation#getX

  ##### Returns:

  the x position
  Type
    number

#### getY()

  Gets the y position measured in page coordinates.
  Inherited From:
    - Core.Annotations.Annotation#getY

  ##### Returns:

  Type
    number

#### hasRotationControlEnabled()

  Returns true if the rotation control is enabled for the annotation and false otherwise.
  Inherited From:
    - Core.Annotations.Annotation#hasRotationControlEnabled

  ##### Returns:

  Type
    boolean

#### isContentEditPlaceholder()

  Returns whether the annotation is a content editing placeholder, which are annotations used as placeholders for content edit boxes when the content editing tool is active
  Inherited From:
    - Core.Annotations.Annotation#isContentEditPlaceholder

  ##### Returns:

  Whether the annotation is a content edit placeholder or not
  Type
    boolean

#### isFormFieldPlaceholder()

  Returns whether the annotation is a form field place holder annotation, which are annotations used as place holders for fields in the Form Field Creation mode
  Inherited From:
    - Core.Annotations.Annotation#isFormFieldPlaceholder

  ##### Returns:

  Type
    boolean

#### isGrouped()

  Gets whether the annotation is a child of a group
  Inherited From:
    - Core.Annotations.Annotation#isGrouped

  ##### Returns:

  Returns true if the annotation is a child of a group, false otherwise.
  Type
    boolean

#### isInternal()

  Returns true if annotation is part of the original document, false otherwise.
  Inherited From:
    - Core.Annotations.Annotation#isInternal

  ##### Returns:

  Whether the annotation is internal to the document or not
  Type
    boolean

#### isPrintVisible()

  Whether the annotation is visible on the document or not **when printed**. If Hidden or if the annotation is a reply to another annotation then it won't be visible.
  Inherited From:
    - Core.Annotations.Annotation#isPrintVisible

  ##### Returns:

  Whether the annotation is visible on the document or not when printed
  Type
    boolean

#### isReply()

  Gets whether the annotation is a reply to another annotation.
  Inherited From:
    - Core.Annotations.Annotation#isReply

  ##### Returns:

  Returns true if it does reply to another annotation, false otherwise.
  Type
    boolean

#### isVisible()

  Whether the annotation is visible on the document or not **when viewing**. If the Hidden or NoView flags are set, or if the annotation is a reply to another annotation then it won't be visible.
  Inherited From:
    - Core.Annotations.Annotation#isVisible

  ##### Returns:

  Whether the annotation is visible on the document or not when viewing
  Type
    boolean

#### move(rect)

  Move the annotation based on a new given Core.Math.Rect. Use this method instead of setRect when internal properties (other than x, y, width and height) need to be modified on move.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rect` | Core.Math.Rect | the new bounding rectangle

  Inherited From:
    - Core.Annotations.Annotation#move

#### removeCustomAppearance()

  Removes the custom appearance of the annotation.
  Inherited From:
    - Core.Annotations.Annotation#removeCustomAppearance

#### resize(rect)

  Resize the annotation based on a new given Core.Math.Rect. Use this method instead of setRect when internal properties (other than x, y, width and height) need to be modified on resize.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rect` | Core.Math.Rect | the new bounding rectangle

  Inherited From:
    - Core.Annotations.Annotation#resize

#### resourcesLoaded()

  Resolves when all required resources have finished loading. Currently only applicable to stamp annotations that use images.
  Inherited From:
    - Core.Annotations.Annotation#resourcesLoaded

  ##### Returns:

  A promise that resolves when the resources have finished loading
  Type
    Promise.<void>

#### serialize(element, pageMatrix)

  Serialize the annotation to an xml element

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `element` | Element | an xml element representing the annotation
  `pageMatrix` | object | the page matrix used to convert XOD coordinates to PDF coordinates.

  Inherited From:
    - Core.Annotations.Annotation#serialize

  ##### Returns:

  the resulting xml element representing the annotation
  Type
    Element

#### setContents(value)

  Set the text content for the annotation. Note that this will not refresh the text in the UI.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `value` | string | the text content to be set

  Inherited From:
    - Core.Annotations.Annotation#setContents

#### setCustomData(key, value)

  Sets the custom data associated with the specified key.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `key` | string | The key under which to store this custom data. Data will automatically be saved in the exported XFDF and merged into the PDF when downloading.
  `value` | string | The custom data to store

  Inherited From:
    - Core.Annotations.Annotation#setCustomData

#### setHeight(value)

  Sets the height of the annotation.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `value` | number | the height of the annotation.

  Inherited From:
    - Core.Annotations.Annotation#setHeight

#### setModified( [shouldKeepAppearance])

  Flags the annotation as modified if it has been before the last call to exportAnnotationCommand Removes the annotation's appearance if no parameter is passed Should be called if changing a custom property on the annotation that is used for serialization Otherwise the annotation will serialize the original deserialized value

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `shouldKeepAppearance` | boolean | <optional> | If true then the annotation's appearance will be maintained

  Inherited From:
    - Core.Annotations.Annotation#setModified

#### setPageNumber(value)

  Sets the page number of the annotation. Note: page numbers start from 1.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `value` | number | the page number to be set

  Inherited From:
    - Core.Annotations.Annotation#setPageNumber

#### setRect(rect)

  Sets the size and location of the annotation's bounding rectangle. Use this method instead of resize when only the x, y, width and height needs to be modified. Beware: this method ignores coordinates if they are the wrong way around. (It hasn't been fixed for reasons of maintaining backward compatibility. use setRectWithNormalization instead if you want it to reverse the wrong-way-round coordinates instead of ignoring them.)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rect` | Core.Math.Rect | the new bounding rectangle

  Inherited From:
    - Core.Annotations.Annotation#setRect

#### setRectWithNormalization(rect)

  Sets the size and location of the annotation's bounding rectangle. Use this method instead of resize when only the x, y, width and height needs to be modified. Use setRectWithNormalization instead of setRect if you want to reverse any wrong-way-round coordinates instead of ignoring them.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rect` | Core.Math.Rect | the new bounding rectangle

  Inherited From:
    - Core.Annotations.Annotation#setRectWithNormalization

#### setRichTextStyle(richTextStyle)

  Sets the rich text style of the annotation. New style will replace the old one

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `richTextStyle` | Core.Annotations.Annotation.RichTextStyle | The new rich text style of the annotation

  Inherited From:
    - Core.Annotations.Annotation#setRichTextStyle

#### setRotationControlEnabled(rotationControlEnabled)

  Enables or disables the rotation control for the annotation

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rotationControlEnabled` | boolean | true if the rotation control should be enabled

  Inherited From:
    - Core.Annotations.Annotation#setRotationControlEnabled
  Deprecated:
    - since version 8.0 Please use enableRotationControl or disableRotationControl instead

#### setStyles(ctx, pageMatrix)

  Sets the annotation's styles for stroke, fill and opacity on the canvas context

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `ctx` | CanvasRenderingContext2D | A canvas context
  `pageMatrix` | object | The transformation matrix for the page that the annotation is on

#### setWidth(value)

  Sets the width of the annotation.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `value` | number | the width of the annotation.

  Inherited From:
    - Core.Annotations.Annotation#setWidth

#### setX(value)

  Sets the x position measured in page coordinates of an annotation.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `value` | number | the x position

  Inherited From:
    - Core.Annotations.Annotation#setX

#### setY(value)

  Sets the y position measured in page coordinates.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `value` | number | the y position

  Inherited From:
    - Core.Annotations.Annotation#setY

#### updateRichTextStyle(object [, startIndex] [, endIndex])

  Update the rich text style of the annotation. Can provide a range to set the which characters the style should apply to

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `object` | Core.Annotations.Annotation.StyleObject |  | The new rich text style of the annotation ###### Properties
  Name | Type | Description
  --- | --- | ---
  `'underline'` | boolean | boolean value for whether string should be underlined
  `'line-through'` | boolean | boolean value for whether string should be strike through
  `'font-weight'` | string | String for the font weight of the rich text (can be 'bold')
  `'font-style'` | string | String for font style of the rich text (can be 'italic')
  `'color'` | string | string for what color to set text to
  `startIndex` | number | <optional> | Starting character to apply style, if null apply to every character
  `endIndex` | number | <optional> | Last character to apply style. If null, apply till end

  Inherited From:
    - Core.Annotations.Annotation#updateRichTextStyle

#### Search results