Xbase++
Xbase++
Sign PDF with Invisible Signature
See more PDF Signatures Examples
Demonstrates how to sign a PDF with an invisible signature.Note: This example requires Chilkat v9.5.0.85 or greater.
Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oPdf
LOCAL oJson
LOCAL oCert
nSuccess := 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oPdf := CreateObject("Chilkat.Pdf")
// Load a PDF to be signed.
// The "hello.pdf" is available at https://chilkatsoft.com/hello.pdf
nSuccess := oPdf:LoadFile("qa_data/pdf/hello.pdf")
IF (nSuccess == 0)
? oPdf:LastErrorText
oPdf:destroy()
RETURN
ENDIF
// Options for signing are specified in JSON.
oJson := CreateObject("Chilkat.JsonObject")
// In most cases, the signingCertificateV2 and signingTime attributes are required.
oJson:UpdateInt("signingCertificateV2", 1)
oJson:UpdateInt("signingTime", 1)
// Indicate that the signature will be invisible.
oJson:UpdateBool("invisibleSignature", 1)
// Load the signing certificate. (Use your own certificate.)
oCert := CreateObject("Chilkat.Cert")
nSuccess := oCert:LoadPfxFile("qa_data/pfx/myPdfSigningCert.pfx", "secret")
IF (nSuccess == 0)
? oCert:LastErrorText
oPdf:destroy()
oJson:destroy()
oCert:destroy()
RETURN
ENDIF
// Tell the pdf object to use the certificate for signing.
nSuccess := oPdf:SetSigningCert(oCert)
IF (nSuccess == 0)
? oPdf:LastErrorText
oPdf:destroy()
oJson:destroy()
oCert:destroy()
RETURN
ENDIF
nSuccess := oPdf:SignPdf(oJson, "qa_output/hello_signed.pdf")
IF (nSuccess == 0)
? oPdf:LastErrorText
oPdf:destroy()
oJson:destroy()
oCert:destroy()
RETURN
ENDIF
? "PDF successfully signed with an invisible signature."
// An invisible signature has no appearance within the PDF document itself,
// but Adobe Acrobat will indicate the document is signed in a toolbar, as shown here:
// (image:https://example-code.com/images/invisible_signature.jpg/endImage)
oPdf:destroy()
oJson:destroy()
oCert:destroy()