Class: RubberStampCreateTool

Core.Tools. RubberStampCreateTool

Represents the tool for creating Core.Annotations.StampAnnotation.

new RubberStampCreateTool(docViewer)

Parameters:
Name Type Description
docViewer Core.DocumentViewer An instance of DocumentViewer.

Extends

Methods


addCustomStamp(options)

Add a single custom stamp to tool's list
Parameters:
Name Type Description
options Core.Tools.RubberStampCreateTool.CustomStampData The custom stamp data

addEventListener(type, fn [, options])

Add a handler to the given event name
Parameters:
Name Type Argument Description
type string | number The name of the event to listen to
fn function The handler to be called when the event is triggered
options object <optional>
Optional options object for addEventListener
Properties
Name Type Description
once boolean If true then the handler will be called only once
Inherited From:
Overrides:
Returns:
Returns the object that 'addEventListener' is being called on
Type
object
Example
myObject.addEventListener('eventName', (eventParameter1, eventParameter2) => {
  ...
});

addStamp()

Add the stamp to the document.
Returns:
Type
Promise.<void>

contextMenu(e)

The function is called when a context menu should be shown. Use e.preventDefault to disable the default browser context menu.
Parameters:
Name Type Description
e The event object
Inherited From:
Overrides:

deleteCustomStamps(stampsToDelete)

Deletes the provided set of custom stamps from the tool. The delete logic performs an object reference comparison therefore it is recommended to only pass in stamps retrieved from RubberStampCreateTool.getCustomStamps.
Parameters:
Name Type Description
stampsToDelete Array.<Core.Tools.RubberStampCreateTool.CustomStampData> An array of objects representing custom stamps to delete.

drawCustomStamp(options)

Draw custom stamp annotation onto a canvas
Parameters:
Name Type Description
options object An object that can contain the following optional parameters
Properties
Name Type Argument Description
title string <optional>
Custom stamp's main text
subtitle string <optional>
Time format text used as a custom timestamp, e.g. "DD-MM-YYYY" To render a plain-text string as a subtitle, place the desired string inside of square brackets e.g. "[This is a subtitle]".
color string <optional>
Fill color value, see Annotation.Color
textColor string <optional>
Text color value, see Annotation.Color
canvas string <optional>
Canvas to draw this annotation
width string <optional>
Default width of stamp
height string <optional>
Default height of stamp
canvasParent string <optional>
Parent DOM element of canvas
font string <optional>
Font family to use for stamp text
bold boolean <optional>
Whether to use bold styling for the title or not
italic boolean <optional>
Whether to use italic styling for the title or not
underline boolean <optional>
Whether to underline the title or not
strikeout boolean <optional>
Whether to strikeout the title or not

getCustomStampAnnotations()

Get array of custom annotations.
Returns:
Type
Promise.<Array.<Core.Annotations.StampAnnotation>>

getCustomStamps()

Returns array of objects representing the custom stamps
Returns:
An array of objects representing the custom stamps
Type
Array.<Core.Tools.RubberStampCreateTool.CustomStampData>

getDefaultStamps()

Returns array of strings representing the built-in, default stamps
Returns:
Type
Array.<string>

getDocumentViewer()

Returns the instance of DocumentViewer for this tool.
Inherited From:
Overrides:
Returns:
The instance of DocumentViewer for this tool.
Type
Core.DocumentViewer

getMouseLocation(e)

Takes an event object from a mouse event and converts the location into window coordinates
Parameters:
Name Type Description
e The event object containing mouse coordinates
Inherited From:
Overrides:
Returns:
Returns an object with x and y coordinates of the mouse cursor in the viewer
Type
Core.Math.Point

getPreview(annotation, parameters)

Gets the preview about how the annot will be drawn on the document
Parameters:
Name Type Description
annotation Core.Annotations.StampAnnotation annotation to get the preview for.
parameters Object canvas parameters and optional text for annotation, e.g. translated text. e.g. { canvasHeight: number, canvasWidth: number, text: string }
Returns:
Returns a promise that resolves a base64 string of the preview image
Type
Promise.<string>

getStandardStampAnnotations()

Get array of standard stamp annotations.
Returns:
Type
Promise.<Array.<Core.Annotations.StampAnnotation>>

getStandardStamps()

Returns array of strings representing the standard stamps
Returns:
An array of objects representing the standard stamps
Type
Array.<string>

hidePreview()

Hide the preview element

isEmptyStamp()

Checks if the underlying annotation is empty. If the underlying annotation is a StampAnnotation type return true.
Returns:
Type
boolean

keyDown(e)

The function is called when a keyboard key is down.
Parameters:
Name Type Description
e The event object containing keyboard key data.
Inherited From:
Overrides:

mouseDoubleClick(e)

The function is called when the mouse left button is double clicked.
Parameters:
Name Type Description
e The event object containing mouse coordinates.
Inherited From:
Overrides:

mouseLeftDown(e)

The function called when the left mouse button is down
Parameters:
Name Type Description
e The event object containing mouse coordinates.
Inherited From:
Overrides:

mouseLeftUp(e)

The function called when the left mouse button is up. Typically, annotations are created and added to the annotation manager at this point.
Parameters:
Name Type Description
e The event object containing mouse coordinates.
Inherited From:
Overrides:

mouseMove(e)

The function called when the mouse moves.
Parameters:
Name Type Description
e The event object containing mouse coordinates.
Inherited From:
Overrides:

mouseRightDown(e)

The function called when the right mouse button is down.
Parameters:
Name Type Description
e The event object containing mouse coordinates.
Inherited From:
Overrides:

removeEventListener( [type] [, fn])

Remove a handler of the given event name and namespace (if given) or with a function reference
Parameters:
Name Type Argument Description
type string | number <optional>
The name of the event to remove the handler of with an optional namespace.
fn function <optional>
The handler associated with this event to be removed. If fn is undefined, all the handlers of the given event namespace will be removed. If you are not passing in this parameter then a namespace must be used with the event name.
Inherited From:
Overrides:
Returns:
Returns the object that 'removeEventListener' is being called on
Type
object
Example
myObject.removeEventListener('eventName.namespace');
myObject.removeEventListener('eventName', fn);

setCustomDrawFunction(callback)

Sets a custom function to be used for drawing extra content on top of custom stamps, enabling customization of the CanvasRenderingContext2D of the Canvas element used for Rubber Stamps
Parameters:
Name Type Description
callback function A callback side effect function that takes a two parameters. The first is assumed to be the type CanvasRenderingContext2D, and modifies the parameter for the purposes of custom drawing behavior on top of the default stamp behavior. The second parameter is optional, and is assumed to be an instance of the Core.Annotations.Annotation class, wherein custom behavior for the stamp annotation being modified can be added (i.e. conditionally apply custom drawing on certain annotations only)
Example
WebViewer(
 // ...
).then(instance => {
  const { docViewer } = instance;
  const tool = docViewer.getTool('AnnotationCreateRubberStamp');
  tool.setCustomDrawFunction((ctx, annotation) => {
    const { Icon } = annotation;
    // `Icon` contains the text content of the stamp
    // This example conditionally renders custom content on the stamp only
    // if the contents of the stamp are in the approved list of stamps to
    // draw on
    const stampsToDrawOn = [
      'Approved',
      'Completed',
      'Final',
    ];
    if (stampsToDrawOn.includes(Icon)) {
      // Arbitrary example where an image is available in the DOM
      const img = document.getElementById('my-company-logo');
      ctx.drawImage(
        img, // The image to render
        0, // The X coordinate of where to place the image
        0, // The Y coordinate of where the place the image
        25, // The width of the image in pixels
        25, // The height of the image in pixels
      );
    }
  });
});

setCustomStamps(stamps)

Accepts and sets an array of objects representing custom stamps
Parameters:
Name Type Description
stamps Array.<Core.Tools.RubberStampCreateTool.CustomStampData> An array of objects representing custom stamps Example: [ { "title": "Sample Text", "subtitle": "DD-MM-YYYY", "color": window.Core.Annotations.Color(0,0,0) } ]

setName(name)

Set the name of the tool, which can be accessed by toolObject.name
Parameters:
Name Type Description
name string Name of the tool
Inherited From:
Overrides:

setRubberStamp(annotation, text)

Sets the underlying annotation used by the tool
Parameters:
Name Type Description
annotation Core.Annotations.StampAnnotation Annotation to set
text string Text to be set in the stamp
Returns:
Type
Promise.<void>

setStandardStamps(stamps)

Accepts and sets an array of objects representing standard stamps
Parameters:
Name Type Description
stamps Array.<string> An array of strings representing the standard stamps

setStyles(newStyles)

Set the style for the tool, which will be applied to annotations drawn afterwards
Parameters:
Name Type Description
newStyles object if an object is used, it should contain properties of the new styles. Example of valid properties: StrokeColor, TextColor, FillColor, FontSize, Opacity, StrokeThickness, Precision, Scale, OverlayText, Style and Dashes.
Inherited From:
Overrides:

showPreview()

Shows the preview about how the underlying annot looks like if it's drawn.

switchIn(oldTool)

The function is called when this tool is selected. Typically use for changing mouse cursors, and initializing states for the tool.
Parameters:
Name Type Description
oldTool Core.Tools.Tool The Tool class that was previously selected.
Inherited From:
Overrides:

switchOut(newTool)

The function is called when this tool is deselected. Typically use for changing mouse cursors, and cleaning up states for the tool.
Parameters:
Name Type Description
newTool Core.Tools.Tool The Tool class that was newly selected.
Inherited From:
Overrides:

trigger(type [, data])

Calls the handlers of the event name with given data
Parameters:
Name Type Argument Description
type string | number event name of which the handlers will be called.
data * <optional>
data that will be passed to the handlers. If data is an array, it will be spread and then passed to the handlers
Inherited From:
Overrides:
Returns:
Returns the object that 'trigger' is being called on
Type
object
Example
myObject.trigger('eventName');
myObject.trigger('eventName', [eventParameter1, eventParameter2]);

useStamp(options)

Have this rubber stamp tool always create a single type of stamp with the specified icon value.
Parameters:
Name Type Description
options object An object that can contain the following optional parameters
Properties
Name Type Argument Description
Icon string The name of the icon can be used, eg: 'SBRejected' | 'SHAccepted' | 'Dot'
FillColor Core.Annotations.Color <optional>
The color of the stamp. Defaults to black.
Width number <optional>
The width of the stamp
Height number <optional>
The Height of the stamp
Opacity number <optional>
The Opacity of the stamp

Type Definitions


CustomStampData

Type:
  • Object
Properties:
Name Type Argument Description
title string <optional>
Custom stamp's main text
subtitle string <optional>
Time format text used as a custom timestamp, e.g. "DD-MM-YYYY" To render a plain-text string as a subtitle, place the desired string inside of square brackets e.g. "[This is a subtitle]".
color Core.Annotations.Color <optional>
Background color value
id string <optional>
Stamp ID
font string <optional>
Font family to use for stamp text
bold boolean <optional>
Whether to use bold styling for the title or not
italic boolean <optional>
Whether to use italic styling for the title or not
underline boolean <optional>
Whether to underline the title or not
strikeout boolean <optional>
Whether to strikeout the title or not

Events


annotationAdded

Triggered when an annotation has been added to the document by the tool.
Parameters:
Name Type Description
annotation Core.Annotations.StampAnnotation The annotation that was added.

customStampsDeleted

Triggered when a set of custom stamps has been deleted.
Parameters:
Name Type Description
stamps Array.<Core.Tools.RubberStampCreateTool.CustomStampData> The set of custom stamps to delete.

stampsUpdated

Triggered when a set of either standard or custom stamps has been updated.
Parameters:
Name Type Description
stamps Array.<string> | Array.<Core.Tools.RubberStampCreateTool.CustomStampData> The updated set of standard or custom stamps.