Foxit PDF SDK
foxit::pdf::annots::FreeText Class Reference
Inheritance diagram for foxit::pdf::annots::FreeText:
foxit::pdf::annots::Markup foxit::pdf::annots::Annot foxit::Base

Public Member Functions

 FreeText ()
 Constructor.
 
 FreeText (const Annot &annot)
 Constructor, with parent class object. More...
 
 ~FreeText ()
 Destructor.
 
common::Alignment GetAlignment () const
 Get alignment value. More...
 
EndingStyle GetCalloutLineEndingStyle () const
 Get line ending style of the start point in a callout line. More...
 
PointFArray GetCalloutLinePoints () const
 Get a point of callout line points. More...
 
DefaultAppearance GetDefaultAppearance ()
 Get default appearance data. More...
 
RGB GetFillColor () const
 Get fill color. More...
 
RectF GetInnerRect () const
 Get the inner rectangle. More...
 
common::Rotation GetRotation ()
 Get current rotation value (in clockwise). More...
 
Matrix GetTextMatrix () const
 Get matrix in default appearance data for text in current free text annotation. More...
 
void Rotate (common::Rotation rotation)
 Rotate current annotation from current state with specified rotation value (in clockwise). More...
 
void SetAlignment (common::Alignment alignment)
 Set alignment value. More...
 
void SetCalloutLineEndingStyle (EndingStyle ending_style)
 Set line ending style of the start point in a callout line. More...
 
void SetCalloutLinePoints (const PointFArray &point_array)
 Set points for callout line. More...
 
bool SetDefaultAppearance (const DefaultAppearance &default_ap)
 Set default appearance data. More...
 
void SetFillColor (RGB fill_color)
 Set fill color. More...
 
void SetInnerRect (const RectF &inner_rect)
 Set the inner rectangle. More...
 
void SetRotation (common::Rotation rotation)
 Set rotation value (in clockwise). More...
 
void SetTextMatrix (const Matrix &text_matrix)
 Set matrix in default appearance data for text in current free text annotation. More...
 
- Public Member Functions inherited from foxit::pdf::annots::Markup
 Markup (const Annot &annot)
 Constructor, with parent class object. More...
 
 Markup ()
 Constructor.
 
 ~Markup ()
 Destructor.
 
Note AddReply ()
 Add a new reply to the end of reply list. More...
 
Note AddStateAnnot (StateModel model, State state)
 Add a new state annotation. More...
 
DateTime GetCreationDateTime () const
 Get creation date time. More...
 
MarkupArray GetGroupElements ()
 Get an element (as markup annotation) from the group that current markup annotation belongs to. More...
 
Markup GetGroupHeader ()
 Get the header annotation (as primary annotation) of the group that current markup annotation belongs to. More...
 
String GetIntent () const
 Get intent name. More...
 
float GetOpacity () const
 Get opacity value. More...
 
Popup GetPopup ()
 Get related pop-up annotation. More...
 
Note GetReply (int index) const
 Get a reply by index. More...
 
int GetReplyCount ()
 Count all replies. More...
 
Note GetStateAnnot (StateModel model, int index)
 Get a state annotation, under a specified state model. More...
 
int GetStateAnnotCount (StateModel model)
 Get the count of state annotations, under a specified state model. More...
 
WString GetSubject () const
 Get subject string. More...
 
WString GetTitle () const
 Get title string. 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 state annotations. More...
 
bool RemoveReply (int index)
 Remove a reply by index. More...
 
void SetCreationDateTime (const DateTime &date_time)
 Set creation date time. More...
 
void SetIntent (const String &intent)
 Set intent name. More...
 
void SetOpacity (float opacity)
 Set opacity value. More...
 
void SetPopup (const Popup &popup)
 Set related pop-up annotation. More...
 
void SetSubject (const WString &subject)
 Set subject string. More...
 
void SetTitle (const WString &title)
 Set title string. More...
 
bool Ungroup ()
 Ungroup current markup annotation from the group it belongs to. More...
 
- Public Member Functions inherited from foxit::pdf::annots::Annot
 Annot (const PDFPage &page, objects::PDFDictionary *annot_dict)
 Constructor, with PDF page and annotation's PDF dictionary. More...
 
 Annot (const Annot &annot)
 Constructor, with another annotation object. More...
 
 Annot ()
 Constructor.
 
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 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 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...
 
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...
 

Additional Inherited Members

- Public Types inherited from foxit::pdf::annots::Markup
enum  EndingStyle {
  e_EndingStyleNone = 0, e_EndingStyleSquare = 1, e_EndingStyleCircle = 2, e_EndingStyleDiamond = 3,
  e_EndingStyleOpenArrow = 4, e_EndingStyleClosedArrow = 5, e_EndingStyleButt = 6, e_EndingStyleROpenArrow = 7,
  e_EndingStyleRClosedArrow = 8, e_EndingStyleSlash = 9
}
 Enumeration for line ending style. More...
 
enum  MeasureType {
  e_MeasureTypeX = 0, e_MeasureTypeY = 1, e_MeasureTypeD = 2, e_MeasureTypeA = 3,
  e_MeasureTypeT = 4, e_MeasureTypeS = 5
}
 Enumeration for annotation's measure type. More...
 
enum  State {
  e_StateMarked = 1, e_StateUnmarked = 2, e_StateAccepted = 3, e_StateRejected = 4,
  e_StateCancelled = 5, e_StateCompleted = 6, e_StateNone = 7
}
 Enumeration for markup annotation's state. More...
 
enum  StateModel { e_StateModelMarked = 1, e_StateModelReview = 2 }
 Enumeration for markup annotation's state model. More...
 
- Public Types inherited from foxit::pdf::annots::Annot
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
}
 Enumeration for PDF annotation type. More...
 

Detailed Description

A free text annotation displays text directly on the page. So free text annotation does not need a related pop-up annotation to show the text.
Free text annotation is a kind of markup annotation, so class FreeText is derived from class Markup, and also offers functions to get/set free text annotation's properties and reset appearance stream of a free text annotation.

Note
For a newly created free text annotation, if user calls function Annot::ResetAppearanceStream directly without setting any properties, the default appearance will be used:
border width = 1.0, border style = BorderInfo::e_Solid, border color = 0xFFFF0000 (red), opacity = 1.0, alignment = 0 (as left-justified), default appearance flags = DefaultAppearance::e_FlagFont| DefaultAppearance::e_FlagTextColor| DefaultAppearance::e_FlagFontSize, default appearance font is created based on common::Font::e_StdIDHelvetica, default appearance text size = 12, default appearance text color = 0xFF0000FF (blue).
See also
Markup

Constructor & Destructor Documentation

◆ FreeText()

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

Constructor, with parent class object.

Parameters
[in]annotParent class object.

Member Function Documentation

◆ GetAlignment()

common::Alignment foxit::pdf::annots::FreeText::GetAlignment ( ) const

Get alignment value.

This property has effect on free text annotation's appearance.

Returns
The alignment value. Please refer to values starting from common::e_AlignmentLeft and this would be one of these values.

◆ GetCalloutLineEndingStyle()

EndingStyle foxit::pdf::annots::FreeText::GetCalloutLineEndingStyle ( ) const

Get line ending style of the start point in a callout line.

Only when the intent name of a free text annotation is "FreeTextCallout", this free text annotation can have line ending style property, and this property has effect on this kind of free text annotation's appearance.

Returns
The line ending style of the start point. Please refer to values starting from Markup::e_EndingStyleNone and this would be one of these values.

◆ GetCalloutLinePoints()

PointFArray foxit::pdf::annots::FreeText::GetCalloutLinePoints ( ) const

Get a point of callout line points.

Only when the intent name of a free text annotation is "FreeTextCallout", this free text annotation can have callout line points property, and this property has effect on this kind of free text annotation's appearance. For a callout line, it can contain 2 or 3 points:

  • 2 points represent the starting point and ending point of the callout line.
  • 3 points represent the starting point, knee point, and ending point of the callout line.
Returns
A point array that represents the points used for callout line of a callout free text annotation.

◆ GetDefaultAppearance()

DefaultAppearance foxit::pdf::annots::FreeText::GetDefaultAppearance ( )

Get default appearance data.

This property has effect on free text annotation's appearance. Default appearance data can be used in formatting text.

Returns
The default appearance data.

◆ GetFillColor()

RGB foxit::pdf::annots::FreeText::GetFillColor ( ) const

Get fill color.

This property has effect on free text annotation's appearance. Fill color is used to fill the background of text box, and also for some callout line ending styles:
"Square", "Circle", "Diamond", "ClosedArrow", "RClosedArrow".

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

◆ GetInnerRect()

RectF foxit::pdf::annots::FreeText::GetInnerRect ( ) const

Get the inner rectangle.

This property has effect on free text annotation's appearance. For a free text annotation, inner rectangle is where the annotation's text should be displayed. The inner rectangle could be just the same as or less than the annotation's rectangle, and should never be larger than annotation's rectangle.

Returns
The inner rectangle.

◆ GetRotation()

common::Rotation foxit::pdf::annots::FreeText::GetRotation ( )

Get current rotation value (in clockwise).

Returns
Current rotation value (in clockwise). Please refer to values starting from common::e_Rotation0 and this would be one of these values.

◆ GetTextMatrix()

Matrix foxit::pdf::annots::FreeText::GetTextMatrix ( ) const

Get matrix in default appearance data for text in current free text annotation.

This property has effect on free text annotation's appearance. This property can be used to change the skew of text's display.

Returns
Matrix used for text in default appearance.

◆ Rotate()

void foxit::pdf::annots::FreeText::Rotate ( common::Rotation  rotation)

Rotate current annotation from current state with specified rotation value (in clockwise).

Parameters
[in]rotationRotation value which represents the degree used to rotate current annotation from current state in clockwise. Please refer to values starting from common::e_Rotation0 and this should be one of these values except common::e_RotationUnknown. Specially, if the input value is common::e_Rotation0 (which means not to rotate current annotation), current function will do nothing.
Returns
true means success, while false means failure.

◆ SetAlignment()

void foxit::pdf::annots::FreeText::SetAlignment ( common::Alignment  alignment)

Set alignment value.

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

Parameters
[in]alignmentThe new alignment value. Please refer to values starting from common::e_AlignmentLeft and this should be one of these values.
If other values is used to set, common::e_AlignmentLeft will be used by default.
Returns
None.

◆ SetCalloutLineEndingStyle()

void foxit::pdf::annots::FreeText::SetCalloutLineEndingStyle ( EndingStyle  ending_style)

Set line ending style of the start point in a callout line.

Only when the intent name of a free text annotation is "FreeTextCallout", this free text annotation can have line ending style property, and this property has effect on this kind of free text annotation's appearance.
If user wants the new line ending style has effect on annotation's appearance, please call function Annot::ResetAppearanceStream after setting new line ending style.

Parameters
[in]ending_styleThe line ending style for the start point to be set. Please refer to values starting from Markup::e_EndingStyleNone and this should be one of these values.
Returns
None.

◆ SetCalloutLinePoints()

void foxit::pdf::annots::FreeText::SetCalloutLinePoints ( const PointFArray point_array)

Set points for callout line.

Only when the intent name of a free text annotation is "FreeTextCallout", this free text annotation can have callout line points property, and this property has effect on this kind of free text annotation's appearance. For a callout line, it can contain 2 or 3 points:

  • 2 points represent the starting point and ending point of the callout line.
  • 3 points represent the starting point, knee point, and ending point of the callout line.

If user wants the new callout line points has effect on annotation's appearance, please call function Annot::ResetAppearanceStream after setting new callout line points.

Parameters
[in]point_arrayNew point array that specifies the starting point, knee point(if any) and ending point of the callout line. The count of elements should be 2 or 3: 2 points meand starting point and ending point; 3 points means the startign point, knee point and ending point.
If the count of elements is above 3, only the first 3 points will be used to set callout line.
Returns
None.

◆ SetDefaultAppearance()

bool foxit::pdf::annots::FreeText::SetDefaultAppearance ( const DefaultAppearance default_ap)

Set default appearance data.

This property has effect on free text annotation's appearance. Default appearance data can be used in formatting text.
If user wants the new default appearance data has effect on annotation's appearance, please call function Annot::ResetAppearanceStream after setting new default appearance data.

Parameters
[in]default_apThe new default appearance data to be set. flags of input data can be used to decide which information is/are to be updated with the new data; for those no updated data, they will keep to use old data.
Returns
true means success, while false means failure. Specially, this function will return false if the parameter default_ap contains any incorrect value, for example:

◆ SetFillColor()

void foxit::pdf::annots::FreeText::SetFillColor ( RGB  fill_color)

Set fill color.

This property has effect on free text annotation's appearance. Fill color is used to fill the background of text box, and also for some callout line ending styles:
"Square", "Circle", "Diamond", "ClosedArrow", "RClosedArrow".
If user wants the new fill color has effect on annotation's appearance, please call function Annot::ResetAppearanceStream after setting new fill color.

Parameters
[in]fill_colorNew fill color to be set. Format: 0xRRGGBB.
Returns
None.

◆ SetInnerRect()

void foxit::pdf::annots::FreeText::SetInnerRect ( const RectF inner_rect)

Set the inner rectangle.

This property has effect on free text annotation's appearance. For a free text annotation, inner rectangle is where the annotation's text should be displayed. The inner rectangle could be just the same as or less than the annotation's rectangle, and should never be larger than annotation's rectangle.
If user wants the new inner rectangle has effect on annotation's appearance, please call function Annot::ResetAppearanceStream after setting new inner rectangle.

Parameters
[in]inner_rectNew inner rectangle to be set. It should be same as or less than annotation's rectangle.
Returns
None.

◆ SetRotation()

void foxit::pdf::annots::FreeText::SetRotation ( common::Rotation  rotation)

Set rotation value (in clockwise).

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

Parameters
[in]rotationNew rotation value (in clockwise) to be set to current free text annotation. Please refer to values starting from common::e_Rotation0 and this should be one of these values except common::e_RotationUnknown.
Returns
None.

◆ SetTextMatrix()

void foxit::pdf::annots::FreeText::SetTextMatrix ( const Matrix text_matrix)

Set matrix in default appearance data for text in current free text annotation.

This property has effect on free text annotation's appearance. This property can be used to change the skew of text's display.
If user wants the new text matrix has effect on annotation's appearance, please call function Annot::ResetAppearanceStream after setting new text matrix.

Parameters
[in]text_matrixThe new text matrix.
Returns
None.