Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

wWacomSDKSignature

Delphi library for Wacom SDK Signature

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

Wacom SDK Signature Demo (Delphi)

Minimal demo project for digital signature capture with Wacom STU tablets through the Wacom Signature SDK in Delphi.
The project includes a Delphi wrapper that encapsulates the interfaces exposed by FLSIGCTLLib_TLB.pas and a simple demo form.

Important note: This README describes only the actual files included in the repository (no invented APIs).


Project Contents

File Description
FLSIGCTLLib_TLB.pas Unit generated by the Type Library Import of the COM FlSigCOM.dll (Wacom). Exposes the types and interfaces of the SigCtl control and the Signature object.
WacomSignature.pas Wrapper containing the TWACOMSignature class and the TWACOMTableResultRecord record. Provides actual methods for starting signature capture, obtaining results, and optionally retrieving the image as a stream or drawing it to a TImage.
SignatureDemo.pas/.dfm Example form with a button and a TImage. Demonstrates how to invoke signature capture and display/manage the result.
SignDemo.dpr Delphi project file.

Requirements

  • REQUIRE DRIVER "Wacom-STU-Driver-5.4.5.exe"
  • REQUIRE SDK "sdk-for-signature-windows-4.8.2.zip"
  • Wacom Signature SDK (COM/ActiveX � FlSigCOM.dll)
  • Wacom STU drivers installed (version noted in the unit comments)
  • Administrative privileges to register the COM DLL (if required).

COM Registration (if needed)

bat
regsvr32 "C:\Program Files\Common Files\WacomGSS\FlSigCOM.dll"

(Path may vary depending on installation.)


Architecture (actual in the code)

Result record

TWACOMTableResultRecord (in WacomSignature.pas) contains the real fields used by the demo:

  • ResultClass: TWACOMTabletResultCode � high-level result (wcOk, wcCancel, wcNoDevice, etc.)
  • ResultCode: Integer � numeric result code.
  • Graphometrics: string � string containing extracted graphometric data/indicators.
  • SignHash: string � hash of the signature.
  • GraphoHash: string � hash of the graphometric data.
  • DigitizerModel: string � model of the digitizer device.
  • DigitizerDriver: string � version/description of the driver.

The record also exposes procedure Clear; to reset all fields.

Wrapper class

TWACOMSignature provides only the methods and properties actually present in the files:

  • class function Run(const ALicense, AWho, AWhy: string; AImage: TImage): TWACOMTableResultRecord;
    Draws directly into the given TImage and returns the TWACOMTableResultRecord.
  • class function Run(const ALicense, AWho, AWhy: string; const AWidth: Integer = 480; const AHeight: Integer = 150; AStream: TMemoryStream): TWACOMTableResultRecord;
    Executes signature capture and writes the image (PNG) into the provided AStream, returning the TWACOMTableResultRecord.

License note: If ALicense is an empty string, the unit internally sets a free fallback license (constant cFreeLicense in the code).
A constant cSECRET_KEY is used for hashing.

Additional data: additional codes (e.g. TWACOMTabletAdditionalDataDigitizer = 26, ...Driver = 27, etc.) are used to retrieve device/driver information from the Wacom control.


Usage Examples (taken from the demo)

1) Capture into a TMemoryStream

pascal
var
  LStream: TMemoryStream;
  LResult: TWACOMTableResultRecord;
begin
  LStream := TMemoryStream.Create;
  try
    // ALicense can be empty to use the internal free license
    LResult := TWACOMSignature.Run('', 'my company', 'reason', LStream);
    //...
    Caption := LResult.SignHash;
  finally
    LStream.Free;
  end;
end;

2) Capture and draw directly into a TImage

pascal
var
  LResult: TWACOMTableResultRecord;
begin
  // ALicense can be empty to use the internal free license
  LResult := TWACOMSignature.Run('', 'my company', 'reason', Image1);
  Caption := LResult.SignHash;
end;

The examples are consistent with SignatureDemo.pas and the actual method signatures defined in WacomSignature.pas.


Build & Run

  1. Open SignDemo.dpr in Delphi.
  2. Make sure the Wacom COM control is registered and STU drivers are installed.
  3. Compile and run the demo.
  4. Click "Sign" on the form and sign on the connected Wacom STU device.

Notes

  • The wrapper uses TSigCtl.Capture(AWho, AWhy) from the Wacom COM object to start the capture session.
  • The generated image is serialized as PNG (saved to the stream or drawn into the TImage).
  • Hashes and graphometric data are calculated/exposed by the wrapper as strings in the TWACOMTableResultRecord.
  • If no device/service is available, ResultClass will return the corresponding state (e.g. wcNoDevice, wcNoService).

Credits and Trademarks

Wacom�, STU� and the related SDKs/drivers are trademarks of their respective owners.
This project is released under the terms of the GNU General Public License v3.0 (GPL-3.0).

Author: William Pristia