Topics   All   MacOS (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Deprecated   Guides   Examples   Videos
New in version: 11.4   11.5   12.0   12.1   12.2   12.3   12.4   12.5   13.0   13.1    Statistic    FMM    Blog  


Saves and signs the current PDF.

Component Version macOS Windows Linux Server iOS SDK
DynaPDF 13.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes ✅ Yes
MBS( "DynaPDF.SaveAndSignFileExt1"; PDF { ; ContactInfo; Location; Reason; Signer; SignatureSize } )   More


Parameter Description Example Flags
PDF The PDF reference returned from DynaPDF.New. $pdf
ContactInfo The contact info. Optional
Location Signers location string $location Optional
Reason Reason string. $reason Optional
Signer Signers name string $signer Optional
SignatureSize The byte size for the signature expected.
This is an estimate on how much space to reserve in the PDF.
Default is 2048 bytes, enough for a 1024 bit signature.

You may sign a dummy text to check how big the signature is before signing the PDF.


Returns hex text or error.


Saves and signs the current PDF.
On success you either get back the PDF as container value (in memory PDF) or it returns OK after writing PDF to file (file based PDF).
No preview picture is added. Please use DynaPDF.GeneratePreview function if this is needed.

Same as DynaPDF.SaveAndSignFileExt, you need to create the signature and then call DynaPDF.SaveAndSignFileExt2 function to pass the final signature as hex string.

Returns hex encoded hash to sign.
As of v13.1 we have no MBS function to perform such a signature, but.we may add that if needed. But this function was made for people using external hardware to perform the signature.


Start signing process:

Set Variable [ $hash ; Value: MBS("DynaPDF.SaveAndSignFileExt1"; $pdf; "Test User"; "Chicago"; "") ]

Manually sign PDF content:

# manually load certificate and key
Set Variable [ $pkcs12 ; Value: MBS( "PKCS12.ReadFromFile"; "/Users/cs/Desktop/test_cert.pfx"; "123456") ]
# sign a test string to know size in advance
Set Variable [ $SampleSignature ; Value: MBS( "PKCS12.SignData"; $pkcs12; "hex"; "C9097E23869BC9903CE89E9562230C6FDCBC0F06"; ""; "hex"; "" ) ]
Set Variable [ $estimatedSignatureSize ; Value: Length($SampleSignature) / 2 + 5 ]
# now save and produce hash
Set Variable [ $hashToSign ; Value: MBS("DynaPDF.SaveAndSignFileExt1"; $pdf; "My ContactInfo"; "My Location"; "My Reason"; "My Signer"; $estimatedSignatureSize) ]
# sign the hash
Set Variable [ $Signature ; Value: MBS( "PKCS12.SignData"; $pkcs12; "hex"; $HashToSign; ""; "hex"; "" ) ]
# and finish the PDF
Set Field [ Merge PDFs::MergeStatus ; MBS("DynaPDF.SaveAndSignFileExt2"; $pdf; $signature; "Merged.pdf") ]

See also

Release notes

Example Databases

Blog Entries

This function checks for a paid license.

Created 18th January 2023, last changed 28th February 2023

DynaPDF.SaveAndSignFileExt - DynaPDF.SaveAndSignFileExt2

💬 Ask a question or report a problem

Start Chat