Foxit PDF SDK
foxit::pdf::annots::Annot Class Reference
Inheritance diagram for foxit::pdf::annots::Annot:
foxit::Base foxit::pdf::annots::Link foxit::pdf::annots::Markup foxit::pdf::annots::PagingSeal foxit::pdf::annots::Popup foxit::pdf::annots::PSInk foxit::pdf::annots::Screen foxit::pdf::annots::Widget foxit::pdf::annots::Caret foxit::pdf::annots::Circle foxit::pdf::annots::FileAttachment foxit::pdf::annots::FreeText foxit::pdf::annots::Ink foxit::pdf::annots::Line foxit::pdf::annots::Note foxit::pdf::annots::Polygon foxit::pdf::annots::PolyLine foxit::pdf::annots::Redact foxit::pdf::annots::Sound foxit::pdf::annots::Square foxit::pdf::annots::Stamp foxit::pdf::annots::TextMarkup

Public Types

enum  AppearanceType { e_AppearanceTypeNormal = 0, e_AppearanceTypeRollover = 1, e_AppearanceTypeDown = 2 }
 Enumeration for the type of annotation's appearance. More...
 
enum  Flags {
  e_FlagInvisible = 0x0001, e_FlagHidden = 0x0002, e_FlagPrint = 0x0004, e_FlagNoZoom = 0x0008,
  e_FlagNoRotate = 0x0010, e_FlagNoView = 0x0020, e_FlagReadOnly = 0x0040, e_FlagLocked = 0x0080,
  e_FlagToggleNoView = 0x0100, e_FlagLockedContents = 0x0200
}
 Enumeration for PDF annotation flags. More...
 
enum  HighlightingMode {
  e_HighlightingNone = 0, e_HighlightingInvert = 1, e_HighlightingOutline = 2, e_HighlightingPush = 3,
  e_HighlightingToggle = 4
}
 Enumeration for PDF annotation highlighting mode. More...
 
enum  MKEntry {
  e_MKEntryRotation = 0, e_MKEntryBorderColor = 1, e_MKEntryBackgroundColor = 2, e_MKEntryNormalCaption = 3,
  e_MKEntryRolloverCaption = 4, e_MKEntryDownCaption = 5, e_MKEntryNormalIcon = 6, e_MKEntryRolloverIcon = 7,
  e_MKEntryDownIcon = 8, e_MKEntryIconFit = 9, e_MKEntryIconCaptionRelation = 10
}
 Enumeration for annotation's MK dictionary (an appearance characteristics) entry. More...
 
enum  MKIconCaptionRelation {
  e_MKRelationNoIcon = 0, e_MKRelationNoCaption = 1, e_MKRelationCaptionBelowIcon = 2, e_MKRelationCaptionAboveIcon = 3,
  e_MKRelationCaptionRight = 4, e_MKRelationCaptionLeft = 5, e_MKRelationCaptionOvrlayOnIcon = 6
}
 Enumeration for icon and caption relative position in annotation's MK dictionary. More...
 
enum  Property { e_PropertyModifiedDate = 0, e_PropertyCreationDate = 1, e_PropertyBorderColor = 2, e_PropertyFillColor = 3 }
 Enumeration for some PDF annotation property. More...
 
enum  Type {
  e_UnknownType = 0, e_Note = 1, e_Link = 2, e_FreeText = 3,
  e_Line = 4, e_Square = 5, e_Circle = 6, e_Polygon = 7,
  e_PolyLine = 8, e_Highlight = 9, e_Underline = 10, e_Squiggly = 11,
  e_StrikeOut = 12, e_Stamp = 13, e_Caret = 14, e_Ink = 15,
  e_PSInk = 16, e_FileAttachment = 17, e_Sound = 18, e_Movie = 19,
  e_Widget = 20, e_Screen = 21, e_PrinterMark = 22, e_TrapNet = 23,
  e_Watermark = 24, e_3D = 25, e_Popup = 26, e_Redact = 27,
  e_RichMedia = 28, e_PagingSeal = 29
}
 Enumeration for PDF annotation type. More...
 

Public Member Functions

 Annot ()
 Constructor.
 
 Annot (const Annot &annot)
 Constructor, with another annotation object. More...
 
 Annot (const PDFPage &page, objects::PDFDictionary *annot_dict)
 Constructor, with PDF page and annotation's PDF dictionary. More...
 
virtual ~Annot ()
 Destructor.
 
objects::PDFStreamGetAppearanceStream (AppearanceType type, const char *appearance_state="") const
 Get annotation's appearance stream with specified type and state. More...
 
RGB GetBorderColor () const
 Get border color. More...
 
BorderInfo GetBorderInfo () const
 Get border information. More...
 
WString GetContent () const
 Get content. More...
 
RectI GetDeviceRect (const Matrix &matrix)
 Get annotation rectangle in device coordinate system. More...
 
objects::PDFDictionaryGetDict () const
 Get annotation's dictionary object. More...
 
Matrix GetDisplayMatrix (const Matrix &page_display_matrix)
 Get the display matrix, from PDF coordinate system to targeted device coordinate system. More...
 
uint32 GetFlags () const
 Get annotation flags. More...
 
int GetIndex () const
 Get the index of current annotation in the page which current annotation belongs to. More...
 
DateTime GetModifiedDateTime () const
 Get last modified date time. More...
 
objects::PDFDictionaryGetOptionalContent () const
 Get the PDF dictionary of annotation's optional content. More...
 
PDFPage GetPage () const
 Get the related PDF page. More...
 
RectF GetRect () const
 Get rectangle, in PDF coordinate system. More...
 
Type GetType () const
 Get actual annotation type of current annotation. More...
 
WString GetUniqueID () const
 Get unique ID. More...
 
bool HasProperty (Property property) const
 Whether current annotation has the specified annotation's property. More...
 
bool IsEmpty () const
 Check whether current object is empty or not. More...
 
bool IsMarkup () const
 Check if current annotation is a markup annotation. More...
 
bool Move (const RectF &rect)
 Move current annotation to a new position, specified by a new rectangle in PDF coordinate system. More...
 
bool Move (const RectF &rect, bool is_reset_appearance)
 Move current annotation to a new position, specified by a new rectangle in PDF coordinate system. More...
 
bool operator!= (const Annot &other) const
 Not equal operator. More...
 
Annotoperator= (const Annot &annot)
 Assign operator. More...
 
bool operator== (const Annot &other) const
 Equal operator. More...
 
bool RemoveProperty (Property property)
 Remove a specified annotation's property. More...
 
bool ResetAppearanceStream ()
 Reset appearance stream. More...
 
bool ResetAppearanceStream (bool is_generate_new_appearance_obj)
 Reset appearance stream. More...
 
void SetBorderColor (RGB color)
 Set border color. More...
 
void SetBorderInfo (const BorderInfo &border)
 Set border information. More...
 
void SetContent (const WString &content)
 Set content. More...
 
void SetFlags (uint32 flags)
 Set annotation flags. More...
 
void SetModifiedDateTime (const DateTime &date_time)
 Set last modified date time. More...
 
void SetUniqueID (const WString &unique_id)
 Set unique ID. More...
 
- Public Member Functions inherited from foxit::Base
FS_HANDLE Handle () const
 Get the handle of current object. More...
 

Detailed Description

An annotation associates an object such as a note, sound, or movie with a location on a page of a PDF document, or provides a way to interact with the user by means of the mouse and keyboard. PDF includes a wide variety of standard annotation types.
Class Annot is the base class for all kinds of PDF annotations. It offers the base functions to get/set annotation's common properties, to move an annotation or reset appearance stream of an annotation. For concrete annotation types, please refer to derived classes. To get the count of annotations or get/add/remove an annotation, please refer to class pdf::PDFPage.
This class object can also be used to construct objects of other classes in order to do some more operation in annotation or access specified information of annotation:

  • To access additional actions, please construct an actions::AdditionalAction object with annotation object. Only a few types of annotations may have additional action. For more details, please refer to class actions::AdditionalAction.
  • To search text in annotation, please construct a pdf::TextSearch object with annotation object. The searching can only support some types of annotations. For more details, please refer to class pdf::TextSearch.
Note
Currently, following kind of functions only support note, highlight, underline, strikeout, squiggly, link, square, circle, free text, stamp, caret, ink, line, polygon, polyline, file attachment, pop-up, widget, screen, PSInk, redact annotations:
See also
pdf::PDFPage
actions::AdditionalAction
pdf::TextSearch

Member Enumeration Documentation

◆ AppearanceType

Enumeration for the type of annotation's appearance.

Values of this enumeration should be used alone.

Enumerator
e_AppearanceTypeNormal 

Annotation's normal appearance.

e_AppearanceTypeRollover 

Annotation's rollover appearance.

e_AppearanceTypeDown 

Annotation's down appearance.

◆ Flags

Enumeration for PDF annotation flags.

Values of this enumeration can be used alone or in combination.

Enumerator
e_FlagInvisible 

Annotation flag: invisible.

If set, do not display the annotation if it does not belong to one of the standard annotation types and no annotation handler is available. If clear, display such an non-standard annotation using an appearance stream specified by its appearance dictionary, if any.

e_FlagHidden 

Annotation flag: hidden.

If set, do not display or print the annotation or allow it to interact with the user, regardless of its annotation type or whether an annotation handler is available.

e_FlagPrint 

Annotation flag: print.

If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of whether it is displayed on the screen. This can be useful, for example, for annotations representing interactive pushbuttons, which would serve no meaningful purpose on the printed page.

e_FlagNoZoom 

Annotation flag: no zoom.

If set, do not scale the annotation's appearance to match the magnification of the page. The location of the annotation on the page (defined by the upper-left corner of its annotation rectangle) remains fixed, regardless of the page magnification.

e_FlagNoRotate 

Annotation flag: no rotate.

If set, do not rotate the annotation's appearance to match the rotation of the page. The upper-left corner of the annotation rectangle remains in a fixed location on the page, regardless of the page rotation.

e_FlagNoView 

Annotation flag: no view.

If set, do not display the annotation on the screen or allow it to interact with the user. The annotation may be printed (depending on the setting of flag Annot::e_FlagPrint) but should be considered hidden for purposes of on-screen display and user interaction.

e_FlagReadOnly 

Annotation flag: read only.

If set, do not allow the annotation to interact with the user. The annotation may be displayed or printed (depending on the settings of flags Annot::e_FlagNoView and Annot::e_FlagPrint) but should not respond to mouse clicks or change its appearance in response to mouse motions.

Note
This flag is ignored for widget annotations; its function is subsumed by flag interform::Field::e_FlagReadOnly of related form field.
e_FlagLocked 

Annotation flag: locked.

If set, do not allow the annotation to be deleted or its properties (including position and size) to be modified by the user. However, this flag does not restrict changes to the annotation's contents, such as the value of a form field.

e_FlagToggleNoView 

Annotation flag: toggle no view.

If set, invert the interpretation of the NoView flag for certain events. A typical use is to have an annotation that appears only when a mouse cursor is held over it.

e_FlagLockedContents 

Annotation flag: locked contents.

If set, do not allow the contents of the annotation to be modified by the user. This flag does not restrict deletion of the annotation or changes to other annotation properties, such as position and size.

◆ HighlightingMode

Enumeration for PDF annotation highlighting mode.

Values of this enumeration should be used alone.

Enumerator
e_HighlightingNone 

Highlighting mode: No highlighting.

e_HighlightingInvert 

Highlighting mode: Invert, which is to invert the contents of the annotation rectangle.

e_HighlightingOutline 

Highlighting mode: Outline, which is to invert the annotation's border.

e_HighlightingPush 

Highlighting mode: Push, which is to display the annotation's down appearance, if any.

e_HighlightingToggle 

Highlighting mode: Toggle. This is only useful for widget annotation.

◆ MKEntry

Enumeration for annotation's MK dictionary (an appearance characteristics) entry.

Values of this enumeration should be used alone.

Enumerator
e_MKEntryRotation 

Rotation entry. "R" in MK dictionary.

e_MKEntryBorderColor 

Border color entry. "BC" in MK dictionary.

e_MKEntryBackgroundColor 

Background color entry. "BG" in MK dictionary.

e_MKEntryNormalCaption 

Normal caption entry. "CA" in MK dictionary.

Note
Only applicable for widget annotation associated with pushbutton field, check box field or radio button field.
e_MKEntryRolloverCaption 

Rollover caption entry. "RC" in MK dictionary.

Note
Only applicable for widget annotation associated with pushbutton field.
e_MKEntryDownCaption 

Down caption (or alternate caption) entry. "AC" in MK dictionary.

Note
Only applicable for widget annotation associated with pushbutton field.
e_MKEntryNormalIcon 

Normal icon entry. "I" in MK dictionary.

Note
Only applicable for widget annotation associated with pushbutton field.
e_MKEntryRolloverIcon 

Rollover icon entry. "RI" in MK dictionary.

Note
Only applicable for widget annotation associated with pushbutton field.
e_MKEntryDownIcon 

Down icon (or alternate icon) entry. "IX" in MK dictionary.

Note
Only applicable for widget annotation associated with pushbutton field.
e_MKEntryIconFit 

Icon fit information entry. "IF" in MK dictionary.

Note
Only applicable for widget annotation associated with pushbutton field.
e_MKEntryIconCaptionRelation 

Icon and caption relation entry. "TP" in MK dictionary.

Note
Only applicable for widget annotation associated with pushbutton field. This is used to specify where to position the text of widget annotation's mk caption relative to widget annotation's mk icon.

◆ MKIconCaptionRelation

Enumeration for icon and caption relative position in annotation's MK dictionary.

Values of this enumeration should be used alone.

Enumerator
e_MKRelationNoIcon 

No icon; captin only.

e_MKRelationNoCaption 

No caption; icon only.

e_MKRelationCaptionBelowIcon 

Caption below the icon.

e_MKRelationCaptionAboveIcon 

Caption above the icon.

e_MKRelationCaptionRight 

Caption to the right of the icon.

e_MKRelationCaptionLeft 

Caption to the left of the icon.

e_MKRelationCaptionOvrlayOnIcon 

Caption overlaid directly on the icon.

◆ Property

Enumeration for some PDF annotation property.

Values of this enumeration should be used alone.

Enumerator
e_PropertyModifiedDate 

Annotation property: modified date.

e_PropertyCreationDate 

Annotation property: creation date.

Only markup annotations can have creation date property.

e_PropertyBorderColor 

Annotation property: border color.

Free text annotation can have border color property but not support to remove this property from free text annotation.

e_PropertyFillColor 

Annotation property: fill color.

Only following types of annotations can have fill color property:
square, circle, free text, line, polygon, polyline, redact.

◆ Type

Enumeration for PDF annotation type.

Values of this enumeration should be used alone.

Enumerator
e_UnknownType 

Annotation type: unknown.

e_Note 

Annotation type: note annotation, which is just "Text" annotation - one of standard annotation in <PDF reference 1.7>.

e_Link 

Annotation type: link annotation. One of standard annotation in <PDF reference 1.7>.

e_FreeText 

Annotation type: free text annotation. One of standard annotation in <PDF reference 1.7>.

e_Line 

Annotation type: line annotation. One of standard annotation in <PDF reference 1.7>.

e_Square 

Annotation type: square annotation. One of standard annotation in <PDF reference 1.7>.

e_Circle 

Annotation type: circle annotation. One of standard annotation in <PDF reference 1.7>.

e_Polygon 

Annotation type: polygon annotation. One of standard annotation in <PDF reference 1.7>.

e_PolyLine 

Annotation type: polyline annotation. One of standard annotation in <PDF reference 1.7>.

e_Highlight 

Annotation type: highlight annotation. One of standard annotation in <PDF reference 1.7>.

e_Underline 

Annotation type: underline annotation. One of standard annotation in <PDF reference 1.7>.

e_Squiggly 

Annotation type: squiggly annotation. One of standard annotation in <PDF reference 1.7>.

e_StrikeOut 

Annotation type: strikeout annotation. One of standard annotation in <PDF reference 1.7>.

e_Stamp 

Annotation type: stamp annotation. One of standard annotation in <PDF reference 1.7>.

e_Caret 

Annotation type: caret annotation. One of standard annotation in <PDF reference 1.7>.

e_Ink 

Annotation type: ink annotation. One of standard annotation in <PDF reference 1.7>.

e_PSInk 

Annotation type: pressure sensitive ink annotation.

e_FileAttachment 

Annotation type: file attachment annotation. One of standard annotation in <PDF reference 1.7>.

e_Sound 

Annotation type: sound annotation. One of standard annotation in <PDF reference 1.7>.

e_Movie 

Annotation type: movie annotation. One of standard annotation in <PDF reference 1.7>.

e_Widget 

Annotation type: widget annotation. One of standard annotation in <PDF reference 1.7>.

Note
Foxit PDF SDK treats widget annotation as form control.
e_Screen 

Annotation type: screen annotation. One of standard annotation in <PDF reference 1.7>.

e_PrinterMark 

Annotation type: printer's mark annotation. One of standard annotation in <PDF reference 1.7>.

e_TrapNet 

Annotation type: trap network annotation. One of standard annotation in <PDF reference 1.7>.

e_Watermark 

Annotation type: watermark annotation. One of standard annotation in <PDF reference 1.7>.

e_3D 

Annotation type: 3D annotation. One of standard annotation in <PDF reference 1.7>.

e_Popup 

Annotation type: pop-up annotation. One of standard annotation in <PDF reference 1.7>.

e_Redact 

Annotation type: redact annotation.

e_RichMedia 

Annotation type: rich media annotation.

e_PagingSeal 

Annotation type: paging seal annotation. A Foxit PDF SDK custom annotation type (not a standard annotation type).

Constructor & Destructor Documentation

◆ Annot() [1/2]

foxit::pdf::annots::Annot::Annot ( const PDFPage page,
objects::PDFDictionary annot_dict 
)

Constructor, with PDF page and annotation's PDF dictionary.

Parameters
[in]pageA valid PDF page.
[in]annot_dictAn annotation's PDF dictionary. It should represent an annotation and should be in the PDF page specified by parameter page.

◆ Annot() [2/2]

foxit::pdf::annots::Annot::Annot ( const Annot annot)

Constructor, with another annotation object.

Parameters
[in]annotAnother annotation object.

Member Function Documentation

◆ GetAppearanceStream()

objects::PDFStream* foxit::pdf::annots::Annot::GetAppearanceStream ( AppearanceType  type,
const char *  appearance_state = "" 
) const

Get annotation's appearance stream with specified type and state.

For more details, please refer to "AP" and "AS" entries in "TABLE 8.15 Entries common to all annotation dictionaries" in <PDF reference 1.7>.

Parameters
[in]typeType of annotation's appearance. Please refer to values starting from Annot::e_AppearanceTypeNormal and this should be one of these values.
[in]appearance_stateAnnotation's appearance state, which is used to select the applicable appearance stream from an appearance sub-dictionary. If this is an empty string, Foxit PDF SDK will choose the appearance state specified by the "AS" (Appearance State) entry in the annotation dictionary.
Returns
The specified annotation's appearance stream. If there is no entry which related to appearance or any error occurs, this function will return NULL.

◆ GetBorderColor()

RGB foxit::pdf::annots::Annot::GetBorderColor ( ) const

Get border color.

This property has effect on annotation's appearance.

Returns
The border color. Format: 0xRRGGBB. If no border color can be found, 0x000000 will be returned.

◆ GetBorderInfo()

BorderInfo foxit::pdf::annots::Annot::GetBorderInfo ( ) const

Get border information.

This property has effect on annotation's appearance. For an annotation which does not have border information, the default border information will be returned:
border width = 1, border style = BorderInfo::e_Solid, border cloud intensity = 0, border dash phase = 0, border dashes array is an empty array. Attention: among supported annotation types (please refer to "Note" comment part of class Annot), this property will not have effect on appearance of these annotations: note, highlight, underline, strikeout, squiggly, stamp, caret, popup, file attachment, PSInk, redact. For ink annotation, only border width will have effect on ink annotation's appearance.

Returns
A border information object that received the border information. If not find any border information, the default border information will be returned as described in "Details" part.

◆ GetContent()

WString foxit::pdf::annots::Annot::GetContent ( ) const

Get content.

Returns
Content string.

◆ GetDeviceRect()

RectI foxit::pdf::annots::Annot::GetDeviceRect ( const Matrix matrix)

Get annotation rectangle in device coordinate system.

This is a useful function to get the device rectangle of an annotation, but not support pop-up annotation.
For the rectangle conversion, the result rectangle is always "normalized", which is using device coordinate system: left is always smaller than right, and top is always smaller than bottom.

Parameters
[in]matrixA matrix used to transform from PDF coordinate system to device coordinate system. Usually, this is returned by function pdf::PDFPage::GetDisplayMatrix and also used for rendering.
Returns
The annotation rectangle in device coordinate system. If there is no rectangle information, a RectI object with all 0 values would be returned.

◆ GetDict()

objects::PDFDictionary* foxit::pdf::annots::Annot::GetDict ( ) const

Get annotation's dictionary object.

Returns
Annotation's dictionary. If there is any error, this function will return NULL.

◆ GetDisplayMatrix()

Matrix foxit::pdf::annots::Annot::GetDisplayMatrix ( const Matrix page_display_matrix)

Get the display matrix, from PDF coordinate system to targeted device coordinate system.

Display matrix of current annotation can be used with annotation's rectangle to calculate the real area of annotation in target device coordinate system.

Parameters
[in]page_display_matrixThe transformation matrix. Usually this is returned by function PDFPage::GetDisplayMatrix.
Returns
The display matrix of current annotation.

◆ GetFlags()

uint32 foxit::pdf::annots::Annot::GetFlags ( ) const

Get annotation flags.

Returns
The annotation flags. Please refer to values starting from Annot::e_FlagInvisible and this would be one or a combination of these values. 0 means no annotation flag.

◆ GetIndex()

int foxit::pdf::annots::Annot::GetIndex ( ) const

Get the index of current annotation in the page which current annotation belongs to.

Returns
The index value, starting from 0.

◆ GetModifiedDateTime()

DateTime foxit::pdf::annots::Annot::GetModifiedDateTime ( ) const

Get last modified date time.

Returns
A date and time object that receives the last modified date time. If there is no modified date time information, a date and time object with all 0 values would be returned.

◆ GetOptionalContent()

objects::PDFDictionary* foxit::pdf::annots::Annot::GetOptionalContent ( ) const

Get the PDF dictionary of annotation's optional content.

Returns
The PDF dictionary of annotation's optional content. If there is no "OC" entry or any error occurs, this function will return NULL.

◆ GetPage()

PDFPage foxit::pdf::annots::Annot::GetPage ( ) const

Get the related PDF page.

Returns
A PDF page object which is the related PDF page.

◆ GetRect()

RectF foxit::pdf::annots::Annot::GetRect ( ) const

Get rectangle, in PDF coordinate system.

Returns
The annotation rectangle. If there is no rectangle information, a RectF object with all 0 values would be returned.

◆ GetType()

Type foxit::pdf::annots::Annot::GetType ( ) const

Get actual annotation type of current annotation.

Returns
Annotation type. Please refer to values starting from Annot::e_Note and this would be one of these values.

◆ GetUniqueID()

WString foxit::pdf::annots::Annot::GetUniqueID ( ) const

Get unique ID.

Returns
Unique ID string.

◆ HasProperty()

bool foxit::pdf::annots::Annot::HasProperty ( Property  property) const

Whether current annotation has the specified annotation's property.

Parameters
[in]propertyProperty name. Please refer to values starting from Annot::e_PropertyModifiedDate and this should be one of these values.
Returns
true means current annotation has the specified property, while false means current annotation does not have the specified property.

◆ IsEmpty()

bool foxit::pdf::annots::Annot::IsEmpty ( ) const

Check whether current object is empty or not.

When the current object is empty, that means current object is useless.

Returns
true means current object is empty, while false means not.

◆ IsMarkup()

bool foxit::pdf::annots::Annot::IsMarkup ( ) const

Check if current annotation is a markup annotation.

Returns
true means current annotation is a markup annotation, while false means current annotation is not a markup annotation.

◆ Move() [1/2]

bool foxit::pdf::annots::Annot::Move ( const RectF rect)

Move current annotation to a new position, specified by a new rectangle in PDF coordinate system.

Parameters
[in]rectNew rectangle to specify the new position where current annotation is to be moved to. It should be valid in PDF coordinate system.
Returns
true means success, while false means failure.

◆ Move() [2/2]

bool foxit::pdf::annots::Annot::Move ( const RectF rect,
bool  is_reset_appearance 
)

Move current annotation to a new position, specified by a new rectangle in PDF coordinate system.

Parameters
[in]rectNew rectangle to specify the new position where current annotation is to be moved to. It should be valid in PDF coordinate system.
[in]is_reset_appearanceA boolean value specifies whether to reset annotation's appearance after moving.
Returns
true means success, while false means failure.

◆ operator!=()

bool foxit::pdf::annots::Annot::operator!= ( const Annot other) const

Not equal operator.

Parameters
[in]otherAnother annotation object. This function will check if current object is not equal to this one.
Returns
true means not equal, while false means equal.

◆ operator=()

Annot& foxit::pdf::annots::Annot::operator= ( const Annot annot)

Assign operator.

Parameters
[in]annotAnother annotation object, whose value would be assigned to current object.
Returns
Reference to current object itself.

◆ operator==()

bool foxit::pdf::annots::Annot::operator== ( const Annot other) const

Equal operator.

Parameters
[in]otherAnother annotation object. This function will check if current object is equal to this one.
Returns
true means equal, while false means not equal.

◆ RemoveProperty()

bool foxit::pdf::annots::Annot::RemoveProperty ( Property  property)

Remove a specified annotation's property.

This function can be used to remove some optional properties of an annotation. When appearance related property is removed successfully, such as Annot::e_PropertyBorderColor and Annot::e_PropertyFillColor, user should call function Annot::ResetAppearanceStream to make effect on annotation's appearance.

Parameters
[in]propertyProperty name. Please refer to values starting from Annot::e_PropertyModifiedDate and this should be one of these values.
Returns
true means remove the specified property successfully, or current annotation supports the property but does not have the property.
false means current annotation does not support to have the specified property, or current annotation cannot be removed specified property.

◆ ResetAppearanceStream() [1/2]

bool foxit::pdf::annots::Annot::ResetAppearanceStream ( )

Reset appearance stream.

Annotation's appearance is stored as stream in PDF document. Any appearance-related property can be changed through the corresponding setting functions. For this change to take effect, this function should be called to update the annotation's appearance.
Please check "Note" part in the comment of class Annot to see which types of annotations can be reset appearance by current function and also check comment in classes of these annotations to see if any property is required before resetting appearance stream.

Returns
true means success, while false means failure.

◆ ResetAppearanceStream() [2/2]

bool foxit::pdf::annots::Annot::ResetAppearanceStream ( bool  is_generate_new_appearance_obj)

Reset appearance stream.

Annotation's appearance is stored as stream in PDF document. Any appearance-related property can be changed through the corresponding setting functions. For this change to take effect, this function should be called to update the annotation's appearance.
Please check "Note" part in the comment of class Annot to see which types of annotations can be reset appearance by current function and also check comment in classes of these annotations to see if any property is required before resetting appearance stream.

Parameters
[in]is_generate_new_appearance_objtrue means to generate a new appearance object to reset the appearance of the current annotation, while false means to reset the appearance of annotations that share this appearance stream. The parameter has only effect on widget annotation's appearance.
Returns
true means success, while false means failure.

◆ SetBorderColor()

void foxit::pdf::annots::Annot::SetBorderColor ( RGB  color)

Set border color.

This property has effect on annotation's appearance. If user wants the new border color has effect on annotation's appearance, please call function Annot::ResetAppearanceStream after setting the new border color.

Parameters
[in]colorNew border color to be set. Format: 0xRRGGBB.
Returns
None.

◆ SetBorderInfo()

void foxit::pdf::annots::Annot::SetBorderInfo ( const BorderInfo border)

Set border information.

This property has effect on annotation's appearance. If user wants the new border information has effect on annotation's appearance, please call function Annot::ResetAppearanceStream after setting the new border information.
Attention: among supported annotation types (please refer to "Note" comment part of class Annot), this property will not have effect on appearance of these annotations: note, highlight, underline, strikeout, squiggly, stamp, caret, popup, file attachment, PSInk, redact. For ink annotation, only border width will have effect on ink annotation's appearance.

Parameters
[in]borderNew border information to be set. It should be a valid border information object. If any value of parameter border is invalid, this function will fail to set new border information to current annotation.
Returns
None.

◆ SetContent()

void foxit::pdf::annots::Annot::SetContent ( const WString content)

Set content.

For free text annotation and line annotation (which has enabled caption), they would show content in their appearance. So for these kinds of annotations, this property would have effect on annotation's appearance. If user wants the effect to be shown in the appearance of these kind of annotations, please call function Annot::ResetAppearanceStream after setting new content.

Parameters
[in]contentNew content string to be set.
Returns
None.

◆ SetFlags()

void foxit::pdf::annots::Annot::SetFlags ( uint32  flags)

Set annotation flags.

Parameters
[in]flagsThe annotation flags. It could be 0, or one or a combination of values starting from Annot::e_FlagInvisible.
Returns
None.

◆ SetModifiedDateTime()

void foxit::pdf::annots::Annot::SetModifiedDateTime ( const DateTime date_time)

Set last modified date time.

Parameters
[in]date_timeThe data time to be set. It should contain valid date time data.
Returns
None.

◆ SetUniqueID()

void foxit::pdf::annots::Annot::SetUniqueID ( const WString unique_id)

Set unique ID.

Parameters
[in]unique_idNew unique ID string to be set.
Returns
None.