Components All New MacOS Windows Linux iOS
Examples Mac & Win Server Client Guides Statistic FMM Blog Deprecated Old

DynaPDF.CreateSigField

Creates an empty signature field which can be used to digitally sign the PDF file.

Component Version macOS Windows Linux Server iOS SDK
DynaPDF 4.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes
MBS( "DynaPDF.CreateSigField"; PDF; Name; Parent; PosX; PosY; Width; Height )   More

Parameters

Parameter Description Example
PDF The PDF reference returned from DynaPDF.New. $pdf
Name Name of the field "MySignature"
Parent Parent group field if any or -1. -1
PosX X-Coordinate of the text field. 100
PosY Y-Coordinate of the text field. 100
Width Width of the text field. 100
Height Height of the text field. 20

Result

Returns handle or error message.

Description

Creates an empty signature field which can be used to digitally sign the PDF file.
If the coordinate system is bottom-up the point PosX, PosY defines the lower left corner of the signature field. If the coordinate system is top-down it defines the upper left corner.

Like all form fields, the width and height is measured incl. the line width of the border. The size of normal vector graphics is measured without the line width; this must be taken into account when calculating the width or height of a form field. The line width of the border is derived from the current graphics state (see DynaPDF.SetLineWidth), it should be either 0, 1, 2, or 3 units (no border, thin, medium, or thick). The border style can be changed with the functions DynaPDF.SetBorderStyle or DynaPDF.SetFieldBorderStyle.
If the PDF file should be digitally signed by DynaPDF call the function DynaPDF.CloseAndSignFile or DynaPDF.CloseAndSignFileEx after all pages has been created. The first signature field is used for signing if multiple signature fields exist. In this case it is also possible to create a user defined appearance for the signature field. See CreateSigFieldAP() for further information.

A signature field can be visible or invisible depending on your requirements. To create a hidden signature field set the flag ffHidden to the field (see also DynaPDF.SetFieldFlags).

How to lock an Interactive Form after signing?

If an Interactive Form should be filled in and signed within the full version of Adobe's Acrobat 4 or higher then it is possible to create an empty signature field which executes a special JavaScript Action to lock the form after it has been signed. This can be done with a JavaScript Action which contains the JavaScript function AFSignature_Format(). This function can be called within the OnFormat event of the signature field. Note that this is the one and only event that signature fields support.

The function supports two parameters, the first parameter defines whether all or only specific fields should be locked, the second parameter contains either an empty array or an array of full qualified field names delimited by a comma:

  • AFSignature_Format("ALL", new Array ("")");
  • AFSignature_Format("THESE", new Array ("Field1, Field2")");
  • AFSignature_Format("EXCEPT", new Array ("Field1, Field2")");


If a form contains a button with a Submit Form Action then it is recommended to exclude the button field from locking so that it is still possible to submit the form data. Otherwise, the entire form is locked, incl. the submit button, and it is impossible to submit the form data to a web server.

If you see errors in Acrobat Reader with signing multiple fields, please try DynaPDF.CreateStructureTree function and test whether it works then.

See also CreateSigField function in DynaPDF manual.

Examples

Creates signature field:

MBS("DynaPDF.CreateSigField"; $pdf; Create Form::Name; -1; Create Form::PosX; Create Form::PosY; Create Form::Width; Create Form::Height)

Add a signature field:

# get a page imported before, so we can now edit the page
Set Variable [ $r ; Value: MBS("DynaPDF.EditPage"; $pdf; 1) ]
#
# create a signature field on the page
Set Variable [ $r ; Value: MBS("DynaPDF.CreateSigField"; $pdf; "Signature1"; -1; 356; 650; 184; 12) ]
#
# now you can close page and later save
Set Variable [ $r ; Value: MBS("DynaPDF.EndPage"; $pdf) ]

See also

Example Databases

Blog Entries

This function checks for a license.

Created 18th August 2014, last changed 21st July 2023


DynaPDF.CreateSeparationCS - DynaPDF.CreateSigFieldAP