Skip to content

Signature workflow ​

This topic explains how to control the UIExtension signing workflow with SignatureWorkflowService for custom signing flows. The service lets you set signer override policy, override signing and verification workflows, and related behavior.

SignatureWorkflowService manages the signing workflow and provides:

  • Signer override policy: Customize how signer names are displayed.
  • Custom signing workflow: Replace the default signing flow with your own signing settings.
  • Custom verification workflow: Replace default verification with your own logic.

Methods ​

setSignerOverridePolicy ​

Sets the signer override policy. When set, the viewer calls this policy when the user clicks a signed signature field to view properties, so you can replace the original signer name with a custom name.

Parameters ​

  • overridePolicy: SignerOverridePolicy — The policy to set.

Example ​

javascript
const service = pdfui.getSignatureWorkflowService();
service.setSignerOverridePolicy(async (field) => {
    // Determine the signer to display
    return 'the signer';
});

overrideSigningWorkflow ​

Overrides signing for all signature fields. When you provide a signing callback, Foxit PDF SDK for Web does not use the built-in signing UI when the user signs; it calls your callback and uses the returned signing settings.

Use this to implement custom signing UI and flows.

Parameters ​

  • signingWorkflowHandler: SigningWorkflowHandler — Signing callback.

Example ​

javascript
const service = pdfui.getSignatureWorkflowService();
service.overrideSigningWorkflow(async (field) => {
    // Return signing settings
    return {
        filter: 'Adobe.PPKLite',
        subfilter: 'adbe.pkcs7.detached',
        signer: 'Signer Name',
        distinguishName: '',
        location: '',
        reason: '',
        defaultContentsLength: 0,
        flag: 0,
        sign: async (signInfo: object, plainBuffer: ArrayBuffer) => {
            // Sign the document
            return plainBuffer;
        }
    }
});

overrideVerifyWorkflow ​

Overrides verification for all signature fields. When set, your callback is used to verify signatures.

Parameters ​

  • verifyCallback: VerifyWorkflowHandler — Verification callback.

Example ​

javascript
const service = pdfui.getSignatureWorkflowService();
service.overrideVerifyWorkflow(async (signature) => {
    // Verify the signature
    return 0;
});

verifySignature ​

Verifies the given signature field. Uses your custom verification callback when set; otherwise uses the field’s built-in verification.

Parameters ​

  • signature: ISignatureField — Field to verify.

Returns ​

  • Promise<number> — Resolves to the verification result.

Integration example ​

javascript
const service = pdfui.getSignatureWorkflowService();

// Set signer override policy
service.setSignerOverridePolicy(async (field) => {
    // Determine the signer to display
    return 'the signer';
});

// Override signing workflow
service.overrideSigningWorkflow(async (field) => {
    // Return signing settings
    return {
        filter: 'Adobe.PPKLite',
        subfilter: 'adbe.pkcs7.detached',
        signer: 'Signer Name',
        distinguishName: '',
        location: '',
        reason: '',
        defaultContentsLength: 0,
        flag: 0,
        sign: async (signInfo: object, plainBuffer: ArrayBuffer) => {
            // Sign the document
            return plainBuffer;
        }
    }
});

// Override verification workflow
service.overrideVerifyWorkflow(async (signature) => {
    // Verify the signature
    return 0;
});

// Verify a signature
const signatureField =
...
; // Obtain the signature field
const result = await service.verifySignature(signatureField);
console.log('Verification result:', result);