Foxit PDF SDK

Public Member Functions | List of all members
foxit::pdf::annots::Ink Class Reference
Inheritance diagram for foxit::pdf::annots::Ink:

## Public Member Functions
| Ink ()
| Constructor.
| Ink (const Annot &annot)
| Constructor, with parent class object. More...
| ~Ink ()
| Destructor.
void | EnableUseBezier (bool use_bezier)
| Enable to use bezier spline to generate ink path for ink annotation's appearance. More...
common::Path | GetInkList ()
| Get ink list data. More...
void | SetInkList (const common::Path &ink_list)
| Set ink list data. More...
Public Member Functions inherited from foxit::pdf::annots::Markup
| Markup ()
| Constructor.
| Markup (const Annot &annot)
| Constructor, with parent class object. More...
| ~Markup ()
| Destructor.
Note | AddReply ()
| Add a new reply to the end of reply list. More...
void | AddRichText (const WString &content, const RichTextStyle &style)
| Add a new rich text string to the end. More...
Note | AddStateAnnot (const WString &title, StateModel model, State state)
| Add a new state annotation. More...
float | GetBorderOpacity () const
| Get the border opacity of the annotation. More...
DateTime | GetCreationDateTime () const
| Get creation date time. More...
float | GetFillOpacity () const
| Get the fill opacity of the annotation. 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...
WString | GetRichTextContent (int32 index)
| Get text string of a rich text string specified by index. More...
int32 | GetRichTextCount ()
| Get the count of rich text strings. More...
RichTextStyle | GetRichTextStyle (int32 index)
| Get style data of a rich text string specified by index. More...
NoteArray | GetStateAnnots (StateModel model)
| Get all state annotations in a specified state model. More...
WString | GetSubject () const
| Get subject string. More...
WString | GetTitle () const
| Get title string. More...
void | InsertRichText (int32 index, const WString &content, const RichTextStyle &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 (int index)
| Remove a reply by index. More...
void | RemoveRichText (int index)
| Remove a rich text string specified by index. More...
void | SetBorderOpacity (float opacity)
| Set the border opacity of the annotation. More...
void | SetCreationDateTime (const DateTime &date_time)
| Set creation date time. More...
void | SetFillOpacity (float opacity)
| Set the fill opacity of the annotation. 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 | SetRichTextContent (int32 index, const WString &content)
| Set text string of a rich text string specified by index. More...
void | SetRichTextStyle (int32 index, const RichTextStyle &style)
| Set style data of a rich text string specified by index. 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 ()
| 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::PDFStream * | GetAppearanceStream (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::PDFDictionary * | GetDict () 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::PDFDictionary * | GetOptionalContent () 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...
Annot & | operator= (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...

## 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_StateNone = 0, e_StateMarked = 1, e_StateUnmarked = 2, e_StateAccepted = 3, e_StateRejected = 4, e_StateCancelled = 5, e_StateCompleted = 6, e_StateDeferred = 7, e_StateFuture = 8 }
| 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, e_RichMedia = 28, e_PagingSeal = 29 }
| Enumeration for PDF annotation type. More...

## Detailed Description

An ink annotation represents a freehand "scribble" composed of one or more disjoint paths.
Ink annotation is a kind of markup annotation, so class Ink is derived from class Markup, offers functions to get/set ink annotation's properties and also and reset appearance stream of an ink annotation.
For an ink annotation, ink list property is required. So please ensure that an ink annotation has valid ink list property before resetting its appearance stream; otherwise the ink annotation cannot be reset appearance stream.

Note
  For a newly created ink annotation, if user calls function Annot::ResetAppearanceStream (inherited from Ink's parent class) directly after setting required ink list property and not setting any other properties, the default appearance will be used:
  border width = 2.0, border style = BorderInfo::e_Solid, border color = 0xFFFF0000 (red), opacity = 1.0.

See also
  Markup

## Constructor & Destructor Documentation

## ◆ Ink()

foxit::pdf::annots::Ink::Ink | ( | const Annot & | annot | ) |
| explicit

Constructor, with parent class object.

Parameters

  [in] | annot | Parent class object.

## Member Function Documentation

## ◆ EnableUseBezier()

void foxit::pdf::annots::Ink::EnableUseBezier | ( | bool | use_bezier | ) |

Enable to use bezier spline to generate ink path for ink annotation's appearance.

If this function is not called, Foxit PDF SDK will use bezier spline to generate ink path by default.

Parameters

  [in] | use_bezier | A boolean to decide whether to use bezier spline or not: true means to use bezier spline to generate ink path, while false means to use straight line to connect adjacent points to generate ink path.

Returns
  None.

## ◆ GetInkList()

common::Path foxit::pdf::annots::Ink::GetInkList | ( |  | ) |

Get ink list data.

Ink list property is required for an ink annotation and this property has effect on ink annotation's appearance. The ink list contains one or more stroked path.
In Foxit PDF SDK, class common::Path is used to represent the ink list data, but the point types for path object have been specially simplified for ink list. Only common::Path::e_TypeMoveTo and common::Path::e_TypeLineTo types are used for points in the ink list:

- a point with type common::Path::e_TypeMoveTo means that this point is the start point of a stroked path. Usually the first in path object should be this type.
- a point with type common::Path::e_TypeLineTo means that this point is in a stroked path, which is started by a point with type common::Path::e_TypeMoveTo, and when function Annot::ResetAppearanceStream (inherited from Ink's parent class) is called, Foxit PDF SDK will connect this point with other points by curves.

Operations such as move the ink annotation, or set a new ink path to this annotation will update the ink path data, so that the previous returned path object would become invalid. In this case, user should call this function again to obtain the new path object.

Returns
  The ink list data. If the return value of function common::Path::IsEmpty for the returned path object is true, that means no ink list data can be found.

## ◆ SetInkList()

void foxit::pdf::annots::Ink::SetInkList | ( | const common::Path & | ink_list | ) |

Set ink list data.

Ink list property is required for an ink annotation and this property has effect on ink annotation's appearance. The ink list contains one or more stroked path.
In Foxit PDF SDK, class common::Path is used to represent the ink list data, but the point types for path object have been specially simplified for ink list. Only common::Path::e_TypeMoveTo and common::Path::e_TypeLineTo types are used for points in the ink list:

- a point with type common::Path::e_TypeMoveTo means that this point is the start point of a stroked path. Usually the first in path object should be this type.
- a point with type common::Path::e_TypeLineTo means that this point is in a stroked path, which is started by a point with with type common::Path::e_TypeMoveTo, and when function Annot::ResetAppearanceStream (inherited from Ink's parent class) is called, Foxit PDF SDK will connect this point with other points by curves.

Specially, if input parameter ink_list contains bezier points (for example, added by function common::Path::CubicBezierTo), the control points will be ignored and only the target point will be used in the ink list data.
User is strongly recommended to pass a valid path object only with point types common::Path::e_TypeMoveTo and common::Path::e_TypeLineTo.
If user wants the effect to be shown in annotation's appearance, please call function Annot::ResetAppearanceStream after this function.

Parameters

  [in] | ink_list | New path object which specifies the new list data.

Returns
  None.