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

Public Member Functions

 Ink ()
 Constructor.
 
 Ink (const Annot &annot)
 Constructor, with parent class object. More...
 
 ~Ink ()
 Destructor.
 
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 (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 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 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

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 a 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]annotParent class object.

Member Function Documentation

◆ 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:

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:

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_listNew path object which specifies the new list data.
Returns
None.