|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (DataFlex) PDF Signature Appearance Text Substitution KeywordsSee more PDF Signatures ExamplesThis example demonstrates the text substitution keywords that can be used in the PDF signature's appearance text.Note: This example requires Chilkat v9.5.0.85 or greater. 
 Use ChilkatAx-win32.pkg Procedure Test Handle hoPdf Boolean iSuccess Variant vJson Handle hoJson Variant vJpgData Handle hoJpgData Variant vCert Handle hoCert String sTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatPdf)) To hoPdf If (Not(IsComObjectCreated(hoPdf))) Begin Send CreateComObject of hoPdf End // Load a PDF to be signed. Get ComLoadFile Of hoPdf "qa_data/pdf/empty.pdf" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPdf To sTemp1 Showln sTemp1 Procedure_Return End // Options for signing are specified in JSON. Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End // In most cases, the signingCertificateV2 and signingTime attributes are required. Get ComUpdateInt Of hoJson "signingCertificateV2" 1 To iSuccess Get ComUpdateInt Of hoJson "signingTime" 1 To iSuccess // Put the signature on page 1, top left Get ComUpdateInt Of hoJson "page" 1 To iSuccess Get ComUpdateString Of hoJson "appearance.y" "top" To iSuccess Get ComUpdateString Of hoJson "appearance.x" "left" To iSuccess // Use a font scale of 7.0 Get ComUpdateString Of hoJson "appearance.fontScale" "7.0" To iSuccess // The appearance of the PDF signature can contain any number of text lines. // Chilkat has defined a number of special keywords that can be used in any text line. // Each keyword is replaced with the actual value. // For example, "cert_cn" is replaced with the certificate subject's common name (CN). // Here we are creating a signature with many lines of text, to demonstrate each // keyword. Get ComUpdateString Of hoJson "appearance.text[0]" "Date/time in PDF format: current_dt" To iSuccess Get ComUpdateString Of hoJson "appearance.text[1]" "Current Local date/time: current_datetime" To iSuccess Get ComUpdateString Of hoJson "appearance.text[2]" "GMT Timestamp: current_timestamp_gmt" To iSuccess Get ComUpdateString Of hoJson "appearance.text[3]" "Local Timestamp: current_timestamp_local" To iSuccess Get ComUpdateString Of hoJson "appearance.text[4]" "GMT RFC822 date/time: current_rfc822_dt_gmt" To iSuccess Get ComUpdateString Of hoJson "appearance.text[5]" "Local RFC822 date/time: current_rfc822_dt_local" To iSuccess Get ComUpdateString Of hoJson "appearance.text[6]" "Cert DN (Distinguished Name): cert_dn" To iSuccess Get ComUpdateString Of hoJson "appearance.text[7]" "Cert Common Name: cert_cn" To iSuccess Get ComUpdateString Of hoJson "appearance.text[8]" "Cert Organizational ID (2.5.4.97): cert_org_id" To iSuccess Get ComUpdateString Of hoJson "appearance.text[9]" "Cert Email: cert_email" To iSuccess Get ComUpdateString Of hoJson "appearance.text[10]" "Cert Organization: cert_organization" To iSuccess Get ComUpdateString Of hoJson "appearance.text[11]" "Cert Organziational Unit: cert_ou" To iSuccess Get ComUpdateString Of hoJson "appearance.text[12]" "Cert State: cert_state" To iSuccess Get ComUpdateString Of hoJson "appearance.text[13]" "Cert Country: cert_country" To iSuccess Get ComUpdateString Of hoJson "appearance.text[14]" "Cert Locality: cert_locality" To iSuccess Get ComUpdateString Of hoJson "appearance.text[15]" "Cert Serial Number (hex): cert_serial_hex" To iSuccess Get ComUpdateString Of hoJson "appearance.text[16]" "Cert Serial Number (decimal): cert_serial_dec" To iSuccess Get ComUpdateString Of hoJson "appearance.text[17]" "Cert Thumbprint: cert_thumbprint" To iSuccess Get ComUpdateString Of hoJson "appearance.text[18]" "Cert Issuer Common Name: cert_issuer_cn" To iSuccess Get Create (RefClass(cComChilkatBinData)) To hoJpgData If (Not(IsComObjectCreated(hoJpgData))) Begin Send CreateComObject of hoJpgData End Get ComLoadFile Of hoJpgData "qa_data/jpg/seal1.jpg" To iSuccess If (iSuccess = False) Begin Showln "Failed to load the JPG image." Procedure_Return End Get pvComObject of hoJpgData to vJpgData Get ComSetSignatureJpeg Of hoPdf vJpgData To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPdf To sTemp1 Showln sTemp1 Procedure_Return End // Specify that we want to display the JPG image in the center with 33% opacity. Get ComUpdateString Of hoJson "appearance.image" "custom-jpg" To iSuccess Get ComUpdateString Of hoJson "appearance.imagePlacement" "center" To iSuccess Get ComUpdateString Of hoJson "appearance.imageOpacity" "33" To iSuccess // Load the signing certificate. (Use your own certificate.) Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End Get ComLoadPfxFile Of hoCert "qa_data/pfx/myPdfSigningCert.pfx" "pfx_password" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoCert To sTemp1 Showln sTemp1 Procedure_Return End // Tell the pdf object to use the certificate for signing. Get pvComObject of hoCert to vCert Get ComSetSigningCert Of hoPdf vCert To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPdf To sTemp1 Showln sTemp1 Procedure_Return End Get pvComObject of hoJson to vJson Get ComSignPdf Of hoPdf vJson "qa_output/hello_signed.pdf" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPdf To sTemp1 Showln sTemp1 Procedure_Return End Showln "The PDF has been successfully cryptographically signed." // The appearance of the signature appears in Adobe Acrobat as shown here: | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.