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
DynaPDF.SaveAndSignFileExt1
Saves and signs the current PDF.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
DynaPDF | 13.1 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameters
Parameter | Description | Example | Flags |
---|---|---|---|
The PDF reference returned from DynaPDF.New. | |||
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. |
Optional |
Result
Returns hex text or error.
Description
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.
Examples
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
- DynaPDF.GeneratePreview
- DynaPDF.New
- DynaPDF.Save
- DynaPDF.SaveAndSignFile
- DynaPDF.SaveAndSignFileExt
- DynaPDF.SaveAndSignFileExt2
- DynaPDF.SaveAndSignFileWinCrypt
- PKCS12.ReadFromFile
- PKCS12.SignData
Release notes
- Version 13.1
- Added DynaPDF.SaveAndSignFileExt1 and DynaPDF.SaveAndSignFileExt2 functions to sign a PDF using external PKCS7 signature provider.
Example Databases
Blog Entries
This function checks for a paid license.
Created 18th January 2023, last changed 28th February 2023
