captureSignature(options)
Captures a signature on a signature pad or on a capture dialog box in the browser, depending on the capture strategy. When a signature is captured on a signature pad, the capturing is mirrored in a read-only capture dialog box in the browser. When capturing is done, the signature is returned in ISO format.
Input parameter
Options object (optional)
The option name and type are described in the following list:
- encrypt (boolean): Defines if the communication with the DeviceConnector server component is encrypted. Default: false
- captureStrategy (string): Specifies the strategy for
capturing a signature. Supported strategies are:
PAD_OR_HTML5 - if available, signature capturing is done via signature pad, else capturing is done in browser.
PAD_ONLY - if available, signature capturing is done via signature pad, else an error is returned.
HTML5_ONLY - capturing is done in the browser.
Default: PAD_OR_HTML5
- strokeColor (string): Specifies the color of the signature strokes in HTML hex color code (i.e. #000000). Default: #32323c
- strokeWidth (number): Specifies the stroke width in pixel. Default: 2
- eraseCaption (string): Specifies the caption of the erase action. Default: Erase
- applyCaption (string): Specifies the caption of the apply action. Default: Apply
- cancelCaption (string): Specifies the caption of the cancel action. Default: Cancel
- signatureImageOptions (object): Options for the returned signature image. See signatureImageOptions below.
- html5CaptureOptions (object): Capture options for HTML5 capturing. See html5CaptureOptions below.
- padCaptureOptions (object): Capture options for signature pad capturing. See padCaptureOptions below.
signatureImageOptions
The option name and type are described in the following list:
- trimSignature (boolean): If true, the image contains only the signature area. Else the image contains the whole painting area. Default: false
- trimSignaturePadding (number): Specifies the padding in pixel which is added around the trimmed signature. Default: 0
html5CaptureOptions
The option name and type are described in the following list:
- captureDialogWidth (number): The preferred HTML5 capture dialog box width in pixel. Default: 900
- captureDialogHeight (number): The preferred HTML5 capture dialog box height in pixel. Default: 450
- captureDialogTitle (string): The optional title in the HTML5 capture dialog box header. Default: no title
- showSignatureLine (boolean): Defines if a signature line is displayed in the capture dialog box. Default: false
- signatureLineText (string): Defines the text of the signature line. Default: no text
- decorColor (string): The color of signature line and signature line text in HTML hex color code (i.e. #cccccc). Default: #aaaaaa
- showCancel (boolean): Specifies if the cancel action is displayed as button in footer of the browser capture dialog box. Default: true
- showErase (boolean): Specifies if the erase action is displayed as button in footer of the browser capture dialog box. Default: true
- showApply (boolean): Specifies if the apply action is displayed as button in footer of the browser capture dialog box. Default: true
- showClose (boolean): Specifies if the close action is displayed as icon in the header of the browser capture dialog box. Default: true
padCaptureOptions
The option name and type are described in the following list:
- captureDialogWidth (number): The preferred signature pad capture dialog box width in pixel. Note that the dialog box height is calculated automatically using the aspect ratio of the signature pad. Default: 700
- captureDialogTitle (string): The optional title in the pad capture dialog box header. Default: no title
- padEntryOptionsCallback (callback function): The user defined callback function to retrieve a PadEntryOptions object. The callback function is called by the SignDoc Browser Capture library during capture process with a device object parameter. This parameter contains information about the signature pad that will be used for capturing (see PadEntryOptionsCallback below). The callback function must return a PadEntryOptions object (see PadEntryOptions object below).
- showCancel (boolean): Specifies if the cancel action is displayed as button in footer of the browser capture dialog box. Default is true when no padEntryOptionCallback is provided, else false.
- showErase (boolean): Specifies if the erase action is displayed as button in footer of the browser capture dialog box. Default is true when no padEntryOptionCallback is provided, else false.
- showApply (boolean): Specifies if the apply action is displayed as button in footer of the browser capture dialog box. Default is true when no padEntryOptionCallback is provided, else false.
- showClose (boolean): Specifies if the close action is displayed as icon in the header of the browser capture dialog box. Default: true
PadEntryOptionsCallback
Device object parameter contains information about the signature pad.
The object property name and the type are described in the following list:
- captureWidth (number): The width of the capture area in pixel.
- captureHeight (number): The height of the capture area in pixel.
- displayWidth (number): The width of the display in pixel.
- displayHeight (number): The height of the display in pixel.
- displayBitsPerPixel (number): The number of bits per pixel of the display.
- pressureLevels (number): The number of pressure levels.
- sampleRate (number): The sample rate of the signature pad.
- resolution (number): The resolution of the signature pad.
- device (number): The Device ID according to SignDoc SDK.
- serial (string): The serial number of the signature pad.
- hasProximity (device): Always false, can be ignored.
- deviceName (string): The name of the signature pad.
- driverName (string): The name of the driver which connects the signature pad.
- moduleName (string): Always empty, can be ignored.
- className (string): Always empty, can be ignored.
PadEntryOptions object (returned by callback function):
The option name and the type are described in the following list:
- xml (string): The encoded PadEntryOptions xml structure. See PadEntryOptions below.
- encoding (string[]): The encoding of the xml data. Currently only ['Base64'] is supported.
Returns
An object as Promise.
- action (string): The result action. Possible values are:
OK - user captured signature and clicked ok button
OK_NO_SAMPLES - user clicked ok button without capturing
CANCEL - user clicked cancel button
TIMEOUT - signature pad capture process timed out
STOPPED - the capture process was stopped by the DeviceConnector server. This normally happens when a second capture session is started in parallel.
ERROR - an error occurred, details are available in error object (see below)
- signature (string): The Base64 encoded signature.
- signatureImage (string): The data url of the signature image. The image type is png.
- signatureFormat (string): The format of the signature. Default: ISO
error (object): The error object. See Error below.
Error
The object property name and type are described in the following list:
- code (number): The error code. See some error codes listed below.
- message (string): The error message.
- details (string): The optional error details.
Some error codes:
// API error codes (range 1000 - x)
INTERNAL = 1000; // unexpected internal error
NO_CONNECTION = 1001; // no connection to device connector server (e.g. wrong port or not installed)
NO_SIGNATURE_DEVICE = 1002; // device can't be accessed (e.g. tablet not connected)
SIGNATURE_DEVICE_BUSY = 1003; // device can't be accessed because it is used by another process
PROCESS_BUSY = 1006; // SignDoc Browser Capture is busy by another process
INVALID_PAD_ENTRY_OPTIONS = 1007; // provided pad entry options are invalid
Examples
- Custom signature capturing with strategy PAD_OR_HTML5
var options = { strokeColor: 'red', strokeWidth: 4, padCaptureOptions: { captureDialogWidth: 900, captureDialogTitle: 'Capturing from Wacom Pad...' }, html5CaptureOptions: { captureDialogWidth: 500, captureDialogHeight: 300, captureDialogTitle: 'Draw your signature', showSignatureLine: true, signatureLineText: 'Please sign here' }, showCancel: false } deviceConnector.captureSignature(options).then( (result) => { // Handle result if (result.action === 'OK') { var isoSignature = result.signature; // Process signature... } } ).catch( (error) => { // Handle unexpected error } );
- Capturing with strategy PAD_ONLY and PadEntryOptions
The example uses this PadEntryOptions xml:
<?xml version="1.0" encoding="UTF-8"?> <PadEntryOptions> <Dialog> <Image Decode="Base64,zlib">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</Image> <Button Action="OKAction" Left="38" Top="405" Right="201" Bottom="455" Pen="true" Mouse="true"></Button> <Button Action="EraseAction" Left="317" Top="405" Right="481" Bottom="455" Pen="true" Mouse="true"></Button> <Button Action="CancelAction" Left="597" Top="405" Right="762" Bottom="455" Pen="true" Mouse="true"></Button> </Dialog> </PadEntryOptions>
var encodedPadEntryOptions = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPFBhZEVudHJ5T3B0aW9ucz4KPERpYWxvZz4KCTxJbWFnZSBEZWNvZGU9IkJhc2U2NCx6bGliIj5lSnp0M00yMTVMWVJCdENuNHdpODg5SkxSNkFBdEhkMlRtRnlVUmpPNU9tSDBNeFQvN0FCRUkwaUMvZWVtczAwQVFMVmdQbzdXc3d2Ly8zNWYvLzgrTVBQdi8vNXorOS8vdjJQajQvLy8vVHg4ZFBIdi83OCs0L3krVmVmQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFIeCtmckNBNkZPV1gvUTN6QXpScHl5LzZHK1lHYUpQMlR6Um5XYUc2Rk9XWC9RM3pBelJweXkvNkcrWUdhSlAyVHgvYlZnbHJjWE9jNVRTNkY4L1ZjNXlqNmJZK3Z6dDI2ZEtXYXZkSS9rcWVTMTJucVBJVjhuTFBacEN2c3BkcTkwaitTcDVMWGFlbzhoWHljczlta0sreWwycjNTUDVLbmt0ZHA2anlGZkp5ejJhUXI3S1hhdmRJL2txZVMxMm5xUElWOG5MUFpwQ3ZzcGRxOTBqK1NwNUxYYWVvOGhYeWNzOW1rSyt5bDJyM1NQNUtua3RkcDZqeUZmSnl6MmFRcjdLWGF2ZEkva3FlUzEybnFQSVY4bkxQWnBDdnNwZHE5MGorU3A1TFhhZW84aFh5Y3M5bWtLK3lsMnIzU1A1S25rdGRwNmp5RmZKeXoyYVFyN0tYYXZkb3d6NTZwbU80UjN2Q3Q5K3hZS2pUMWwray9KVmgvMUp1bC9kTVdIbDhscjNMbDhsc3ZYNXJUL3VOL3JHUHZ0b2YyRE41Sk0zVWpPODR5M3kxYVowTFR3R0hBZ1BMelJOMHZxNjhBN1U3Uzc2bE9WWEdwMHlYNzJjdlA1MTlZc2NPNE44ZFJGYm55ZkVxbnNkdytmbnErNWRWUFpCdmhxcmRDMDhCblRGaGdhVlV6VzlNYndKMVkyS1BtWDVsVWJueTFjMTgrOU1lR1NkbzJhUXI2NWo2L1BrWlBWZFg1NnBuK0ZndnVyZVJWTXI1S3VCU3RmQ1kwQjdadmlidm1mdW56enl4blBXWXVjNVNtbjB6SHcxWVpJYk5jbm4yVE0xd2VuZ00vTFY5VzE5ZmwrNGV2bFk1VWQ5OHgvSlZ5L2ZWYi9IL1dma3E0RksxOEpqUUdOZytPSDR3MDBQWExOZDBhY3N2OUxveFBtcU80TjF2MkovNXRZWGplaDg5Q25MYit2ek84SlY1Zk1IWTgrYjhsWDlYdTQvYmUyRGZEVlE2VnA0REdnTURBM0xmdm44L2dQM3dqdlEzcTdvVTVaZmFmUmJmK0tib3RHUVNXcWV2REZ3TVVNMk83VHowYWNzdjYzUFkvTlYwNUR6NTZzSnJaQ3ZSaWxkQzQ4QkxXbmhoeUZEZGo2OUY5NkJybzVGbjdMOFNxT24vTW9mZlZmOUpKVlBIbG5WczdFMzVnZXFSK3VNUG1YNWJYMGVHSzZPekZZNXlmNWpOWlBVejlDNm5TR3RHTkpNK2VvQzlkV29VYzgrdlJlKy9kNk9SWit5L0VxanAvektIMzFYL1NTVlR4NVoxYk94UTNZNnV2UFJweXkvcmM4RDg5V0VlZllmcTVuaytBeHZiY1dvZnNwWFo2K3ZSbzE2K09tOThMMGY2RmowS2N1dk5IcktyL3pSZHpWTmNtUGdxdlpuSHJMVDBaMlBQbVg1YlgwK1NiNzZWdmYvZi9ZZnFGbk04Um5rcTNNcVhRdVBBZFZSb1hQQk8yUHZQN29YdnZkalRZcytaZm1WUmsvNWxULzZycVpKV25WUGVQQzlsVytYcjg1dDYvTkp3dFY5dm5ycHpQbXFleGRIRmlCZi9ibmhLOVJYQThmZWZIUXZmT09IbXhaOXl2SXJqYzZYcjFxalRzY2tRM0pkL1hia3F4UGIrbnllZk5VYVVlUXIrZXFyMHJYd0dGQWRGVG9YdkROMlgvaXVSelF0K3BUbFZ4cWRNbDgxWlo3anlVcStXdGpXNTFQbHE2YXNJbC9KVjErVnJvWEhnT3FvMExuZ25iRTd3cmM4cUduUnB5eS8wdWlaK2FyRyswSmE1WVNWU3pxeXlPSGJrYS9pYkgwK1o3NTZYem82UHNQeGJ1dzhPYkNscTkyajByWHdHRkFkRlRvWHZEUDJtZkQ5am10YTlDbkxyelQ2Y3ZscXlKcDNadXQrVWYzQXNYdVJyMEp0Zlphdm5uM2F1cW42Z1R0UERtenBhdmVvZEMwOEJsUkhoYzRGNzR4OUpueS80NW9XZmNyeUs0MWVQRitORFQ4MVk4ZHVSTDZLdHZYNW92bnE1WHBxbmhtK3FacXgrODhNYk9scTk2aDBMVHdHVkVlRnpnWHZqTjBSdnVWQlRZcytaZm1WUnMvTVYwTW1lVG5WeXhmdHozTmt3VFdMSE5LUTZzVkVuN0w4dGo2ZkoxKzluT1RsNjI1TzhmSDhzNytrKzA5cnhoNWZvWHoxVU9sYWVBeW9qZ3FkQzk0WnV5OTgxeU9hRm4zSzhpdU5mdXRQL0tnNDhkRExoMnZtT2ZKTVI4UWEwZzM1Nmt5MlBwOHFYejJiNnY1bzEwU2pteWRyWnFoOFhmMVNXenMyc0tYYkpOR25iSjdTdGZBWTBKSVdtdGU4UCtybTAzdmh1ejdjc2VoVGxsOXA5T1h5MWN1NFZhL21kZk9IeTFlWHN2VjVWQ2dhTzlXK3lzWDBUZEswbUxlT2xhK2FsSzZGeDRDV3ROQzg1djFSOTUvZUM5LzRzWTVGbjdMOFNxT3ZtSzhlWnBqV2hGUC94bzRaRHI1ZHZycU9yYy9ueVZlVnlhUnBNUjJUMUMvbUhXTmJGeWxmZlZlNkZoNERXdExDRDBPR1BQejBYdmplRDNRcytwVGxWeHA5MFh4Vk9mbERmZS90bU9IZzIrV3JLOWo2UERZUkhZOVlPL21rYWRUQUZYYXNwSHNYQTV1NTJqMHFYUXVQQVkyQm9XSFpMNTkvOXNDOThMMzN0aXY2bE9WWEduMkpmS1Y2T3g5OXl2SWI4aVBlRndsR3ZUcGZ5VmZkcnBjY21qSlB6Y003RHlTSVdJdWQ1eWp5VmZKeWo2WjRSNzZxbVhOVWZraFo5VzJzbkNyNmxNMXp5ZGhRRTN2cW85R29lYzVaaTUzbktKTXl6MWZoa1dPcGNvK21HQmh5SHYyM2UvQy8zcmxJRGV6UGF2Zm9rcG5oOGRYWlZUbFY1ZXZDdDkvWXFPaFRsbDlwOUpSZitUYmh5U1JIdVVkVGJIMStSekNvRVo1a3psa0RXN1RhUGZyckIvaWFWYU5wa3ZwM2hlKzlwVVhScHl5LzB1Z3B2L0p0d3BOSmpuS1BwdGo2L0w1NHNDTTh4cHkyQm5acHRYdDBzYlJRazN5KzZ4amU5S0x3alZmdkx2cVU1VGNwekhRSVR5WTV5ajJhWXNpUGVFMU8rQzQ4dlp5L0JyWnJ0WHQwcGFpZ09tcXg4eHhGbUVsZTd0RVVNczhKUzc3cUpsOGxyOFhPY3hUNUtubTVSMVBJVjdscnRYc2tYeVd2eGM1ekZQa3FlYmxIVThoWHVXdTFleVJmSmEvRnpuTVUrU3A1dVVkVHlGZTVhN1Y3SkY4bHI4WE9jeFQ1S25tNVIxUElWN2xydFhza1h5V3Z4YzV6RlBrcWVibEhVOGhYdVd1MWV5UmZKYS9Gem5NVStTcDV1VWRUeUZlNWE3VjdKRjhscjhYT2N4VDVLbm01UjFQSVY3bHJ0WHNrWHlXdnhjNXpGUGtxZWJsSFU4aFh1V3UxZS9UQkFxSlBXWDdSM3pBelJKK3kvS0svWVdhSVBtVlRSVGViOTRvK1g2dUkvcDU1citqenRZcm83NW4zaWo1ZkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCWDlSczBSa3pVPC9JbWFnZT4KCTxCdXR0b24gQWN0aW9uPSJPS0FjdGlvbiIgTGVmdD0iMzgiIFRvcD0iNDA1IiBSaWdodD0iMjAxIiBCb3R0b209IjQ1NSIgUGVuPSJ0cnVlIiBNb3VzZT0idHJ1ZSI+PC9CdXR0b24+Cgk8QnV0dG9uIEFjdGlvbj0iRXJhc2VBY3Rpb24iIExlZnQ9IjMxNyIgVG9wPSI0MDUiIFJpZ2h0PSI0ODEiIEJvdHRvbT0iNDU1IiBQZW49InRydWUiIE1vdXNlPSJ0cnVlIj48L0J1dHRvbj4KCTxCdXR0b24gQWN0aW9uPSJDYW5jZWxBY3Rpb24iIExlZnQ9IjU5NyIgVG9wPSI0MDUiIFJpZ2h0PSI3NjIiIEJvdHRvbT0iNDU1IiBQZW49InRydWUiIE1vdXNlPSJ0cnVlIj48L0J1dHRvbj4JCQo8L0RpYWxvZz4KPC9QYWRFbnRyeU9wdGlvbnM+Cg=="; function myPadEntryOptionsCallback(device) { return { xml: encodedPadEntryOptions, encoding: ['Base64'] }; } var options = { captureStrategy: 'PAD_ONLY', padCaptureOptions: { padEntryOptionsCallback: myPadEntryOptionsCallback } } deviceConnector.captureSignature(options).then( (result) => { // Handle result if (result.action === 'OK') { var isoSignature = result.signature; // Process signature... } } ).catch( (error) => { // Handle unexpected error } );
PadEntryOptions
With PadEntryOptions xml it is possible to display a background image and virtual buttons on the signature pad.
The PadEntryOptions.xsd can be found in the sdbc subfolder of the SignDoc SDK shipment:
sdbc/PadEntryOptions.xsd