Summary: Nested Classes | Inherited Constants | Ctors | Methods | Inherited Methods | [Expand All]
public class

# Ink

extends Markup

java.lang.Object
↳ | com.pdftron.pdf.Annot
| ↳ | com.pdftron.pdf.annots.Markup
|  | ↳ | com.pdftron.pdf.annots.Ink

## Class Overview

An ink annotation (PDF 1.3) represents a freehand "scribble" composed of one or more disjoint paths. When opened, it shall display a pop-up window containing the text of the associated note.

## Summary

Nested Classes
enum | Ink.BlendMode |

[Expand] Inherited Constants
From class com.pdftron.pdf.annots.Markup
int | e_Cloudy | The Constant e_Cloudy.
int | e_None | This integer list represents the Border Effect of the Markup annotation e_None - No effect e_Cloudy - The border should appear "cloudy".
From class com.pdftron.pdf.Annot
int | e_3D | The Constant e_3D.
int | e_Caret | The Constant e_Caret.
int | e_Circle | The Constant e_Circle.
int | e_FileAttachment | The Constant e_FileAttachment.
int | e_FreeText | The Constant e_FreeText.
int | e_Highlight | The Constant e_Highlight.
int | e_Ink | The Constant e_Ink.
int | e_Line | The Constant e_Line.
int | e_Link | The Constant e_Link.
int | e_Movie | The Constant e_Movie.
int | e_Polygon | The Constant e_Polygon.
int | e_Polyline | The Constant e_Polyline.
int | e_Popup | The Constant e_Popup.
int | e_PrinterMark | The Constant e_PrinterMark.
int | e_Projection | The Constant e_Projection.
int | e_Redact | The Constant e_Redact.
int | e_RichMedia | The Constant e_RichMedia.
int | e_Screen | The Constant e_Screen.
int | e_Sound | The Constant e_Sound.
int | e_Square | The Constant e_Square.
int | e_Squiggly | The Constant e_Squiggly.
int | e_Stamp | The Constant e_Stamp.
int | e_StrikeOut | The Constant e_StrikeOut.
int | e_Text | PDF supports the standard annotation types listed in the following enumeration (plug-in extensions may add new annotation types):.
int | e_TrapNet | The Constant e_TrapNet.
int | e_Underline | The Constant e_Underline.
int | e_Unknown | The Constant e_Unknown.
int | e_Watermark | The Constant e_Watermark.
int | e_Widget | The Constant e_Widget.
int | e_action_trigger_activate | Triggered when the annotation is activated.
int | e_action_trigger_annot_blur | Triggered when the annotation loses the input focus
int | e_action_trigger_annot_down | Triggered when the mouse button is pressed inside the annotation's active area
int | e_action_trigger_annot_enter | Triggered when the cursor enters the annotation's active area
int | e_action_trigger_annot_exit | Triggered when the cursor exits the annotation's active area
int | e_action_trigger_annot_focus | Triggered when the annotation receives the input focus
int | e_action_trigger_annot_page_close | Triggered when the page containing the annotation is closed
int | e_action_trigger_annot_page_invisible | Triggered when the page containing the annotation is no longer visible in the interactive PDF processor's user interface
int | e_action_trigger_annot_page_open | Triggered when the page containing the annotation is opened
int | e_action_trigger_annot_page_visible | Triggered when the page containing the annotation becomes visible
int | e_action_trigger_annot_up | Triggered when the mouse button is released inside the annotation's active area
int | e_down | The Constant e_down.
int | e_hidden | The Constant e_hidden.
int | e_invisible | Flags specifying various characteristics of the annotation.
int | e_locked | The Constant e_locked.
int | e_locked_contents | The Constant e_locked_contents.
int | e_no_rotate | The Constant e_no_rotate.
int | e_no_view | The Constant e_no_view.
int | e_no_zoom | The Constant e_no_zoom.
int | e_normal | An annotation can define as many as three separate appearances: The normal appearance is used when the annotation is not interacting with the user.
int | e_print | The Constant e_print.
int | e_read_only | The Constant e_read_only.
int | e_rollover | The Constant e_rollover.
int | e_toggle_no_view | The Constant e_toggle_no_view.

Public Constructors
| Ink(Obj d) Creates an Ink annotation and initialize it using given Cos/SDF object.
| Ink() Creates an empty Ink annotation.
| Ink(Annot annot) Creates an Ink annotation and initialize it using given annotation object.

Public Methods
Point | GetPoint(int pathindex, int pointindex) Get the specific point in the Ink List.
static Ink | create(Doc doc, Rect pos) Creates a new Ink annotation, in the specified document.
boolean | erase(Point pt1, Point pt2, double eraserHalfWidth) Erase a rectangle area formed by pt1pt2 with width
boolean | erasePaths(Point pt1, Point pt2, double eraserHalfWidth) Erase stroke paths that intersects the rectangle area formed by pt1pt2 with width
static boolean | erasePoints(Obj sdfObj, Rect rect, Point pt1, Point pt2, double eraserHalfWidth) Erase a rectangle area formed by pt1pt2 with width from the SDF object
static double[] | getBezierControlPoints(double[] polyline) Returns an array of Bezier Control Points for smoothing the given polyline
int | getBlendMode() This method is deprecated. use `getHighlightIntent()` instead. Gets the blend mode
boolean | getHighlightIntent() Retrieves whether the Ink will draw like a highlighter.
int | getPathCount() Get number of stroked pathes in the InkList.
int | getPointCount(int pathindex) Get number of points in a certain stroked path in the InkList.
boolean | getSmoothing() Gets whether smoothing should be used then refreshing the inks appearance
void | setBlendMode(Ink.BlendMode blendMode) This method is deprecated. use `setHighlightIntent(boolean)` instead. Sets the blend mode
void | setHighlightIntent(boolean highlight) Enables or disables the Ink drawing like a highlighter.
void | setPoint(int pathindex, int pointindex, Point pt) Set the specific point in the Ink List.
void | setSmoothing(boolean smoothing) Sets whether smoothing should be used then refreshing the inks appearance

[Expand] Inherited Methods
From class com.pdftron.pdf.annots.Markup
int | getBorderEffect() Gets the Border Effect of the Markup Annotation.
double | getBorderEffectIntensity() Gets the Border Effect Intensity of the Markup Annotation.
Rect | getContentRect() Gets the inner bounding rectangle of the Square.
Date | getCreationDates() Gets the creation date of the Markup Annotation.
ColorPt | getInteriorColor() Gets the interior color of the Square.
int | getInteriorColorCompNum() Gets the number indicating interior color space of the Square.
double | getOpacity() Gets the contant opacity value corresponding to the annotation.
Rect | getPadding() Gets the rectangle difference of the Square.
Popup | getPopup() Gets the Popup object associated with this Markup annotation.
String | getSubject() Gets subject of the Markup Annotation.
String | getTitle() Gets the title of the Markup Annotation.
void | rotateAppearance(double angle) Rotates the appearance of the Markup Annotation.
void | setBorderEffect(int effect) Sets the Border Effect of the Markup Annotation.
void | setBorderEffectIntensity(double intensity) Sets the Border Effect Intensity of the Markup Annotation.
void | setContentRect(Rect cr) Sets the inner bounding rectangle of the Square.
void | setCreationDates(Date date) Sets the creation date of the Markup Annotation.
void | setInteriorColor(ColorPt cpt, int comp_num) Sets the interior color of the Square.
void | setOpacity(double opacity) Sets the contant opacity value corresponding to the annotation.
void | setPadding(double padding) Sets the rectangle difference of the Square.
void | setPadding(Rect rd) Sets the rectangle difference of the Square.
void | setPopup(Popup popup) Sets the Popup object associated with this Markup annotation.
void | setSubject(String title) Sets subject of the Markup Annotation.
void | setTitle(String title) Sets the title of the Markup Annotation.
From class com.pdftron.pdf.Annot
int | GetStructParent() Get the struct parent of an annotation.
static Annot | __Create(long impl, Object ref)
long | __GetHandle()
Object | __GetRefHandle()
static Annot | create(Doc doc, int type, Rect pos) Creates a new annotation of a given type, in the specified document.
void | deleteCustomData(String key) Deletes custom data associated with the given key.
boolean | equals(Object d) Compares two annotations for equality.
void | flatten(Page page) Flatten/Merge the existing annotation appearances with the page content and delete this annotation from a given page.
String | getActiveAppearanceState() Get the annotation's active appearance state.
Obj | getAppearance(int annot_state, String app_state) Get the annotation's appearance for the given combination of annotation and appearance states.
Obj | getAppearance() Get the annotation's appearance for the given combination of annotation and appearance states.
Obj | getAppearance(int annot_state) Get the annotation's appearance for the given combination of annotation and appearance states.
Annot.BorderStyle | getBorderStyle() Get the border style for the annotation.
ColorPt | getColorAsCMYK() Get an annotation's color.
ColorPt | getColorAsGray() Get an annotation's color.
ColorPt | getColorAsRGB() Get an annotation's color.
int | getColorCompNum() Get the color space the annotation's color is represented in.
String | getContents() Get the annotation contents.
String | getCustomData(String key) Returns custom data associated with the given key.
Date | getDate() Gets an annotation's last modified date.
boolean | getFlag(int flag) Determine if the give flag is marked flagged
Obj | getOptionalContent() Get optional content of an annotation.
Page | getPage() Get the page the annotation is associated with.
Rect | getRect() Get annoation bound rectangle
int | getRotation() Get the rotation value of the annotation.
Obj | getSDFObj() Get the SDFObj.
Obj | getTriggerAction(int trigger) Get the Action associated with the selected Annot Trigger event.
int | getType() Get the annotation type.
Obj | getUniqueID() Get the annotiation unique ID.
Rect | getVisibleContentBox() It is possible during viewing that GetRect does not return the most accurate bounding box of what is actually rendered.
int | hashCode()
boolean | isMarkup() Checks if annoation is markup.
boolean | isValid() Checks if Annot is valid.
void | refreshAppearance() Regenerates the appearance stream for the annotation.
void | refreshAppearance(RefreshOptions opts) A version of RefreshAppearance allowing custom options to make slight tweaks in behaviour.
void | removeAppearance() Removes the annotation's default appearance.
void | removeAppearance(int annot_state, String app_state) Removes the annotation's appearance for the given combination of annotation and appearance states.
void | resize(Rect pos) Resize annotation
void | setActiveAppearanceState(String astate) Set the annotation's active appearance state.
void | setAppearance(Obj app_stream, int annot_state) Set the annotation's appearance for the given combination of annotation and appearance states.
void | setAppearance(Obj app_stream) Set the annotation's appearance for the given combination of annotation and appearance states.
void | setAppearance(Obj app_stream, int annot_state, String app_state) Set the annotation's appearance for the given combination of annotation and appearance states.
void | setBorderStyle(Annot.BorderStyle bs) Set the border style for the annotation.
void | setColor(ColorPt cpt) Set an annotation's color.
void | setColor(ColorPt cpt, int comp_num) Set an annotation's color.
void | setContents(String ct) Set annotation contents.
void | setCustomData(String key, String value) Sets the custom data associated with the specified key.
void | setDate(Date date) Sets an annotation's last modified date.
void | setDateToNow() Sets an annotation's last modified date to the current time.
void | setFlag(int flag, boolean value) Set the value of given Flag.
void | setOptionalContent(Obj oc) Set optional content of an annotation.
void | setPage(Page page) Set the reference to a page the annotation is associated with.
void | setRect(Rect pos) Set the size and location of an annotation on its page.
void | setRotation(int rot) Set the rotation value of the annotation.
void | setStructParent(int keyval) Set the struct parent of an annotation.
void | setUniqueID(String icon_name) Set the unique identifier for this annotation.
From class java.lang.Object
boolean | equals(Object arg0)
final Class<?> | getClass()
int | hashCode()
final void | notify()
final void | notifyAll()
String | toString()
final void | wait(long arg0, int arg1)
final void | wait(long arg0)
final void | wait()

## Public Constructors

#### public Ink (Obj d)

Creates an Ink annotation and initialize it using given Cos/SDF object.

Note: The constructor does not copy any data, but is instead the logical equivalent of a type cast.

##### Parameters

d | the input Cos/SDF object

#### public Ink ()

Creates an empty Ink annotation.

#### public Ink (Annot annot)

Creates an Ink annotation and initialize it using given annotation object.

Note: The constructor does not copy any data, but is instead the logical equivalent of a type cast.

##### Parameters

annot | the annot

##### Throws

PDFNetException |

## Public Methods

#### public Point GetPoint (int pathindex, int pointindex)

Get the specific point in the Ink List.

Note: The Ink list is An array of n arrays, each representing a stroked path. Each array shall be a series of Point objects specifying points along the path. When drawn, the points shall be connected by straight lines or curves in an implementation-dependent way.

##### Parameters

pathindex | An unsigned integer indicating the index of the stroked path
pointindex | An unsigned integer indicating the index of the point within the stroked path indicated by the parameter "pathindex".

##### Returns

- A Point object that is located by "pathindex" and "pointindex".

##### Throws

PDFNetException |

#### public static Ink create (Doc doc, Rect pos)

Creates a new Ink annotation, in the specified document.

##### Parameters

doc | A document to which the Ink annotation is added.
pos | A rectangle specifying the Ink annotation's bounds, specified in user space coordinates.

##### Returns

- A newly created blank Ink annotation.

##### Throws

PDFNetException |

#### public boolean erase (Point pt1, Point pt2, double eraserHalfWidth)

Erase a rectangle area formed by pt1pt2 with width

##### Parameters

pt1 | A point object that is one end of the eraser segment
pt2 | A point object that is the other end of the eraser segment
eraserHalfWidth | The half width of the eraser

##### Throws

PDFNetException |

#### public boolean erasePaths (Point pt1, Point pt2, double eraserHalfWidth)

Erase stroke paths that intersects the rectangle area formed by pt1pt2 with width

##### Parameters

pt1 | A point object that is one end of the eraser segment
pt2 | A point object that is the other end of the eraser segment
eraserHalfWidth | The half width of the eraser

##### Throws

PDFNetException |

#### public static boolean erasePoints (Obj sdfObj, Rect rect, Point pt1, Point pt2, double eraserHalfWidth)

Erase a rectangle area formed by pt1pt2 with width from the SDF object

##### Parameters

sdfObj | An SDF object containing points on which the erase will be performed
pt1 | A point object that is one end of the eraser segment
pt2 | A point object that is the other end of the eraser segment
eraserHalfWidth | The half width of the eraser

##### Throws

PDFNetException |

#### public static double[] getBezierControlPoints (double[] polyline)

Returns an array of Bezier Control Points for smoothing the given polyline

##### Parameters

polyline | A double array of points that form a polyline

##### Throws

PDFNetException |

#### public int getBlendMode ()

This method is deprecated.
use `getHighlightIntent()` instead. Gets the blend mode

##### Throws

PDFNetException |

#### public boolean getHighlightIntent ()

Retrieves whether the Ink will draw like a highlighter.

##### Returns

- true if the Ink will draw like a highlighter. (multiply blend mode) If false it will draw in normal mode. (normal blend mode)

##### Throws

PDFNetException |

#### public int getPathCount ()

Get number of stroked pathes in the InkList.

Note: The Ink list is An array of n arrays, each representing a stroked path. Each array shall be a series of Point objects specifying points along the path. When drawn, the points shall be connected by straight lines or curves in an implementation-dependent way.

##### Returns

- An integer representing the number of pathes in the Ink list.

##### Throws

PDFNetException |

#### public int getPointCount (int pathindex)

Get number of points in a certain stroked path in the InkList.

Note: The Ink list is An array of n arrays, each representing a stroked path. Each array shall be a series of Point objects specifying points along the path. When drawn, the points shall be connected by straight lines or curves in an implementation-dependent way.

##### Parameters

pathindex | An unsigned integer indicating the index of the stroked path, the number of points within whom is of our interest.

##### Returns

- An integer representing the number of points in the stroked path of the Ink list.

##### Throws

PDFNetException |

#### public boolean getSmoothing ()

Gets whether smoothing should be used then refreshing the inks appearance

##### Throws

PDFNetException |

#### public void setBlendMode (Ink.BlendMode blendMode)

This method is deprecated.
use `setHighlightIntent(boolean)` instead. Sets the blend mode

##### Parameters

blendMode | The blend mode

##### Throws

PDFNetException |

#### public void setHighlightIntent (boolean highlight)

Enables or disables the Ink drawing like a highlighter.

##### Parameters

highlight | true if the Ink will draw like a highlighter. (multiply blend mode) If false it will draw in normal mode. (normal blend mode)

##### Throws

PDFNetException |

#### public void setPoint (int pathindex, int pointindex, Point pt)

Set the specific point in the Ink List.

Note: The Ink list is An array of n arrays, each representing a stroked path. Each array shall be a series of Point objects specifying points along the path. When drawn, the points shall be connected by straight lines or curves in an implementation-dependent way.

##### Parameters

pathindex | An unsigned integer indicating the index of the stroked path
pointindex | An unsigned integer indicating the index of the point within the stroked path indicated by the parameter "pathindex".
pt | A Point object that is to be located by "pathindex" and "pointindex".

##### Throws

PDFNetException |

#### public void setSmoothing (boolean smoothing)

Sets whether smoothing should be used then refreshing the inks appearance

##### Parameters

smoothing | A bool indicating whether smoothing should be used (true by default).

##### Throws

PDFNetException |