Foxit PDF SDK

Instance Methods | Properties | List of all members
FSMarkup Class Reference
Inheritance diagram for FSMarkup:

## Instance Methods
(FSNote *) | - addReply
| Add a new reply to the end of reply list. More...
(void) | - addRichText:style:
| Add a new rich text string to the end. More...
(FSNote *) | - addStateAnnot:model:state:
| Add a new state annotation. More...
(FSMarkupArray *) | - getGroupElements
| Get an element (as markup annotation) from the group that current markup annotation belongs to. More...
(FSMarkup *) | - getGroupHeader
| Get the header annotation (as primary annotation) of the group that current markup annotation belongs to. More...
(FSNote *) | - getReply:
| Get a reply by index. More...
(int) | - getReplyCount
| Count all replies. More...
(NSString *) | - getRichTextContent:
| Get text string of a rich text string specified by index. More...
(int) | - getRichTextCount
| Get the count of rich text strings. More...
(FSRichTextStyle *) | - getRichTextStyle:
| Get style data of a rich text string specified by index. More...
(FSNoteArray *) | - getStateAnnots:
| Get all state annotations in a specified state model. More...
(id) | - initWithAnnot:
| Constructor, with parent class object. More...
(void) | - insertRichText:content:style:
| Insert a new rich text string to the place which is specified by index. More...
(BOOL) | - isGrouped
| Check whether current markup annotation is in a group or not. More...
(BOOL) | - removeAllReplies
| Remove all the replies. More...
(BOOL) | - removeAllStateAnnots
| Remove all the state annotations. More...
(BOOL) | - removePopup
| Remove related pop-up annotation. More...
(BOOL) | - removeReply:
| Remove a reply by index. More...
(void) | - removeRichText:
| Remove a rich text string specified by index. More...
(void) | - setRichTextContent:content:
| Set text string of a rich text string specified by index. More...
(void) | - setRichTextStyle:style:
| Set style data of a rich text string specified by index. More...
(BOOL) | - ungroup
| Ungroup current markup annotation from the group it belongs to. More...
Instance Methods inherited from FSAnnot
(BOOL) | - FSMoveWithResetAppearance:is_reset_appearance:
| Move current annotation to a new position, specified by a new rectangle in PDF coordinate system. More...
(BOOL) | - FSResetApStreamWithIsGenerateNewAppearanceObj:
| Reset appearance stream. More...
(FSPDFStream *) | - getAppearanceStream:appearance_state:
| Get annotation's appearance stream with specified type and state. More...
(FSRectI *) | - getDeviceRect:
| Get annotation rectangle in device coordinate system. More...
(FSPDFDictionary *) | - getDict
| Get annotation's dictionary object. More...
(FSMatrix2D *) | - getDisplayMatrix:
| Get the display matrix, from PDF coordinate system to targeted device coordinate system. More...
(int) | - getIndex
| Get the index of current annotation in the page which current annotation belongs to. More...
(FSPDFDictionary *) | - getOptionalContent
| Get the PDF dictionary of annotation's optional content. More...
(FSPDFPage *) | - getPage
| Get the related PDF page. More...
(FSRectF *) | - getRect
| Get rectangle, in PDF coordinate system. More...
(FSAnnotType) | - getType
| Get actual annotation type of current annotation. More...
(BOOL) | - hasProperty:
| Whether current annotation has the specified annotation's property. More...
(id) | - initWithPage:annot_dict:
| Constructor, with PDF page and annotation's PDF dictionary. More...
(BOOL) | - isEmpty
| Check whether current object is empty or not. More...
(BOOL) | - isMarkup
| Check if current annotation is a markup annotation. More...
(BOOL) | - move:
| Move current annotation to a new position, specified by a new rectangle in PDF coordinate system. More...
(BOOL) | - removeProperty:
| Remove a specified annotation's property. More...
(BOOL) | - resetAppearanceStream
| Reset appearance stream. More...

## Properties
float | borderOpacity
| Get or Set the border opacity of the annotation.
FSDateTime * | creationDateTime
| Get or Set creation date time.
float | fillOpacity
| Get or Set the fill opacity of the annotation.
NSString * | intent
| Get or Set intent name. More...
float | opacity
| Get or Set opacity value. More...
FSPopup * | popup
| Get or Set related pop-up annotation. More...
NSString * | subject
| Get or Set subject string.
NSString * | title
| Get or Set title string. More...
Properties inherited from FSAnnot
unsigned int | borderColor
| Get or Set border color. More...
FSBorderInfo * | borderInfo
| Get or Set border information. More...
NSString * | content
| Get or Set content.
unsigned int | flags
| Get or Set annotation flags.
FSDateTime * | modifiedDateTime
| Get or Set last modified date time.
NSString * | uniqueID
| Get or Set unique ID.

## Detailed Description

Markup annotations are used primarily to mark up PDF documents. These annotations have text that appears as part of the annotation and may be displayed in other ways by a viewer application, such as in a Comments pane.
Class FSMarkup is derived from class FSAnnot , and is also the base class for all PDF markup annotations. It offers the base functions to get/set markup annotation's common properties. For concrete markup annotation types, please refer to derived classes.
Function FSAnnot::isMarkup can be used to judge if an annotation is a markup annotation.

Note
  Currently, following kinds of functions only support note, highlight, underline, strikeout, squiggly, square, circle, free text, stamp, caret, ink, line, polygon, polyline, file attachment annotations:
  - All the "set" functions in class FSMarkup .
  - Function FSAnnot::resetAppearanceStream (inherited from FSMarkup 's parent class).

See also
  FSAnnot

## Method Documentation

## ◆ addReply()

- (FSNote *) addReply |  |  |

Add a new reply to the end of reply list.

Returns
  A new note annotation that represents the new reply annotation.

## ◆ addRichText:style:()

- (void) addRichText: |  | (NSString *) | content
style: |  | (FSRichTextStyle*) | style

Add a new rich text string to the end.

Markup annotation's content can consist of several rich text strings. Specially, if current annotation is a freetext and its intent is "FreeTextTypewriter", text aligment of input style will be set to all rich text strings of current freetext annotation.

Parameters

  [in] | content | Text string used as content of the new rich text string. This should not be an empty string.
  [in] | style | Style data used for the new rich text string.

Returns
  None.

## ◆ addStateAnnot:model:state:()

- (FSNote *) addStateAnnot: |  | (NSString *) | title
model: |  | (FSMarkupStateModel) | model
state: |  | (FSMarkupState) | state

Add a new state annotation.

A markup annotation may have one or several author-specific state associated with it. Each state is not specified in the annotation itself but in a separate note annotation.

- For state model FSMarkupStateModelReview, this function will add a new state annotation once this function is called.
- For state model FSMarkupStateModelMarked, this function will find the latest state annotation with this model and the same title as input parameter title: if find one, this function will change state value of the found state annotation and return the found state annotation directly; if not find any suitable state annotation, this function will add a new one and return the new state annotation.

Parameters

  [in] | title | Title for the new state annotation. Title can be used to identify the user who added current annotation. This can be an empty string but users are strongly recommended to set a meaningful title when using this function.
  [in] | model | State model for the new state annotation. It should be one of following values: FSMarkupStateModelMarked FSMarkupStateModelReview
  [in] | state | State value for the new state annotation. It should be one of following values: If parameter model is FSMarkupStateModelMarked, the state should be FSMarkupStateMarked or FSMarkupStateUnmarked. If parameter model is FSMarkupStateModelReview, the state should be FSMarkupStateAccepted, FSMarkupStateRejected, FSMarkupStateCancelled, FSMarkupStateCompleted, FSMarkupStateDeferred, FSMarkupStateFuture, or FSMarkupStateNone.

Returns
  A note annotation which represents the new state annotation. Last modified date time of the returned state annotation would be set with current local system time by default.

## ◆ getGroupElements()

- (FSMarkupArray *) getGroupElements |  |  |

Get an element (as markup annotation) from the group that current markup annotation belongs to.

Markup annotations can be grouped. The group consists of a primary annotation and one or more subordinate annotations. Some entries in the primary annotation are treated as group attributes that should apply to the group as a whole; the corresponding entries in the subordinate annotations should be ignored. These entries are contents, last modification time, fill color/border color, title, pop-up annotation, creation time, subject, and open status. So user should respect the group property: when a property of an annotation in group is changed, the other annotations in the same group should be changed too.
Operations that manipulate any annotation in a group, such as movement, cut, and copy, should be treated by viewer applications as acting on the entire group.

Returns
  An array that contains all the markup annotations in the group. If current annotation does not belong to a group, this function will return an empty array.

## ◆ getGroupHeader()

- (FSMarkup *) getGroupHeader |  |  |

Get the header annotation (as primary annotation) of the group that current markup annotation belongs to.

Markup annotations can be grouped. The group consists of a primary annotation and one or more subordinate annotations. Some entries in the primary annotation are treated as group attributes that should apply to the group as a whole; the corresponding entries in the subordinate annotations should be ignored. These entries are contents, last modification time, fill color/border color, title, pop-up annotation, creation time, subject, and open status. So user should respect the group property: when a property of an annotation in group is changed, the other annotations in the same group should be changed too.
Operations that manipulate any annotation in a group, such as movement, cut, and copy, should be treated by viewer applications as acting on the entire group.

Returns
  The header markup annotation of the group that current markup annotation belongs to. If the return value of function FSAnnot::isEmpty (inherited from Markup's parent class) for the returned markup annotation object is YES, that means current annotation does not belong to a group.

## ◆ getReply:()

- (FSNote *) getReply: |  | (int) | index |

Get a reply by index.

Parameters

  [in] | index | The index for a specified reply. Valid range: from 0 to (count-1). count is returned by function FSMarkup::getReplyCount.

Returns
  A note annotation that represents the specified reply annotation.

## ◆ getReplyCount()

- (int) getReplyCount |  |  |

Count all replies.

Returns
  The count of replies.

## ◆ getRichTextContent:()

- (NSString *) getRichTextContent: |  | (int) | index |

Get text string of a rich text string specified by index.

Markup annotation's content can consist of several rich text strings.

Parameters

  [in] | index | Index for a rich text string whose content is to be retrieved. Valid range: from 0 to (count-1). count is returned by function FSMarkup::getRichTextCount.

Returns
  Text string for the specified rich text.

## ◆ getRichTextCount()

- (int) getRichTextCount |  |  |

Get the count of rich text strings.

Markup annotation's content can consist of several rich text strings.

Returns
  Count of rich text strings.

## ◆ getRichTextStyle:()

- (FSRichTextStyle *) getRichTextStyle: |  | (int) | index |

Get style data of a rich text string specified by index.

Markup annotation's content can consist of several rich text strings.

Parameters

  [in] | index | Index for a rich text string whose style data is to be retrieved. Valid range: from 0 to (count-1). count is returned by function FSMarkup::getRichTextCount.

Returns
  Style data for the specified rich text string.

## ◆ getStateAnnots:()

- (FSNoteArray *) getStateAnnots: |  | (FSMarkupStateModel) | model |

Get all state annotations in a specified state model.

A markup annotation may have one or several author-specific state associated with it. Each state is not specified in the annotation itself but in a separate note annotation.

Parameters

  [in] | model | State model. It should be one of following values: FSMarkupStateModelMarked FSMarkupStateModelReview

Returns
  A note annotation array which represents all state annotations in the specified state model. All the annotations in this array would be in a chronological order.

## ◆ initWithAnnot:()

- (id) initWithAnnot: |  | (FSAnnot*) | annot |

Constructor, with parent class object.

Parameters

  [in] | annot | Parent class object.

Reimplemented from FSAnnot.

Reimplemented in FSRedact, FSSound, FSFileAttachment, FSCaret, FSPolyLine, FSPolygon, FSStamp, FSInk, FSLine, FSFreeText, FSCircle, FSSquare, FSTextMarkup, FSHighlight, FSUnderline, FSStrikeOut, FSSquiggly, and FSNote.

## ◆ insertRichText:content:style:()

- (void) insertRichText: |  | (int) | index
content: |  | (NSString *) | content
style: |  | (FSRichTextStyle*) | style

Insert a new rich text string to the place which is specified by index.

Markup annotation's content can consist of several rich text strings. Specially, if current annotation is a freetext and its intent is "FreeTextTypewriter", text aligment of input style will be set to all rich text strings of current freetext annotation.

Parameters

  [in] | index | Index for a rich text string whose style data is to be inserted at. Valid range: from 0 to count. count is returned by function FSMarkup::getRichTextCount. If input value is equal to rich text string count, that means to add the new rich text string to the end. In this case, this funcion equals to function FSMarkup::addRichText:style:.
  [in] | content | Text string used as content of the new rich text string. This should not be an empty string.
  [in] | style | Style data used for the new rich text string.

Returns
  None.

## ◆ isGrouped()

- (BOOL) isGrouped |  |  |

Check whether current markup annotation is in a group or not.

Markup annotations can be grouped. The group consists of a primary annotation and one or more subordinate annotations. Some entries in the primary annotation are treated as group attributes that should apply to the group as a whole; the corresponding entries in the subordinate annotations should be ignored. These entries are contents, last modification time, fill color/border color, title, pop-up annotation, creation time, subject, and open status. So user should respect the group property: when a property of an annotation in group is changed, the other annotations in the same group should be changed too.
Operations that manipulate any annotation in a group, such as movement, cut, and copy, should be treated by viewer applications as acting on the entire group.

Returns
  YES means current markup annotation is in a group. NO means current markup annotation does not belong to any group.

## ◆ removeAllReplies()

- (BOOL) removeAllReplies |  |  |

Remove all the replies.

Returns
  YES means success, while NO means failure.

## ◆ removeAllStateAnnots()

- (BOOL) removeAllStateAnnots |  |  |

Remove all the state annotations.

State annotation is represented by note annotation, so, to remove state annotations means to remove this kind of note annotations (with their popup annotations if any) from the page.

Returns
  YES means remove all the state annotations successfully or current annotation does not have any state annotation, while NO means failure.

## ◆ removePopup()

- (BOOL) removePopup |  |  |

Remove related pop-up annotation.

Returns
  YES means that related pop-up annotation is removed successfully, while NO means current markup annotation does not have a related pop-up annotation.

## ◆ removeReply:()

- (BOOL) removeReply: |  | (int) | index |

Remove a reply by index.

If specified reply has its own replies, these sub replies will be removed at the same time.

Parameters

  [in] | index | The index for a specified reply to be removed. Valid range: from 0 to (count-1). count is returned by function FSMarkup::getReplyCount.

Returns
  YES means success, while NO means failure.

## ◆ removeRichText:()

- (void) removeRichText: |  | (int) | index |

Remove a rich text string specified by index.

Markup annotation's content can consist of several rich text strings.

Parameters

  [in] | index | Index for a rich text string whose style data is to be inserted at. Valid range: from 0 to (count-1). count is returned by function FSMarkup::getRichTextCount.

Returns
  None.

## ◆ setRichTextContent:content:()

- (void) setRichTextContent: |  | (int) | index
content: |  | (NSString *) | content

Set text string of a rich text string specified by index.

Markup annotation's content can consist of several rich text strings.

Parameters

  [in] | index | Index for a rich text string whose content is to be set. Valid range: from 0 to (count-1). count is returned by function FSMarkup::getRichTextCount.
  [in] | content | Text string to be set as content for specified rich text. This should not be an empty string.

Returns
  None.

## ◆ setRichTextStyle:style:()

- (void) setRichTextStyle: |  | (int) | index
style: |  | (FSRichTextStyle*) | style

Set style data of a rich text string specified by index.

Markup annotation's content can consist of several rich text strings.
Specially, if current annotation is a freetext and its intent is "FreeTextTypewriter", text aligment of input style will be set to all rich text strings of current freetext annotation.

Parameters

  [in] | index | Index for a rich text string whose style data is to be retrieved. Valid range: from 0 to (count-1). count is returned by function FSMarkup::getRichTextCount.
  [in] | style | Style data used to be set to specified rich text.

Returns
  None.

## ◆ ungroup()

- (BOOL) ungroup |  |  |

Ungroup current markup annotation from the group it belongs to.

- If current markup annotation is just the group header, this function will disband the whole group.
- If current markup annotation is just a member of a group, this function will only ungroup current markup annotation from the group it belongs to.
- If current markup annotation does not belong to any group, this function will do nothing and return NO directly.

Returns
  YES means success, while NO means current markup annotation does not belong to any group.

## Property Documentation

## ◆ intent

- (NSString *) intent
| read write nonatomic weak

Get or Set intent name.

Following annotation types have predefined intent name:

- Free text annotation's predefined intent name: "FreeTextCallout", "FreeTextTypewriter". If no intent name is used, free text annotation would be shown as a text box.
- Line annotation's predefined intent name: "LineArrow", "LineDimension". If no intent name is used, line annotation would be shown as a common line.
- Polygon's predefined intent name: "PolygonCloud", "PolygonDimension". If no intent name is used, polygon annotation would be shown as a common polygon.
- Polyline annotation's predefined intent name: "PolyLineDimension". If no intent name is used, polyline annotation would be shown as a common polyline.

## ◆ opacity

- (float) opacity
| read write nonatomic assign

Get or Set opacity value.

This property has effect on markup annotation's appearance.

## ◆ popup

- (FSPopup *) popup
| read write nonatomic weak

Get or Set related pop-up annotation.

Most markup annotations can have a pop-up annotation to show their content, except sound and free text annotations:

- For sound annotation, it does not have a pop-up annotation.
- For free text annotation, it shows text directly on the page, so no need to have a pop-up annotation.

Though, in some special(or error) PDF document, sound or free text annotation may have a pop-up annotation, they still do not need a pop-up annotation.

## ◆ title

- (NSString *) title
| read write nonatomic weak

Get or Set title string.

By convention, annotation's title can be used to identify the user who added current annotation.