Q: How can I add a digital signature to a document using Qoppa’s java library jPDFSecure?
A: This Java program loads a document, then loads a digital ID from a PKCS#12 file, and then creates and signs a signature field on the first page of the document.
// Load the document PDFSecure pdfDoc = new PDFSecure ("input.pdf", null); // Load the keystore that contains the digital id to use in signing FileInputStream pkcs12Stream = new FileInputStream ("keystore.pfx"); KeyStore store = KeyStore.getInstance("PKCS12"); store.load(pkcs12Stream, "store_pwd".toCharArray()); pkcs12Stream.close(); // Create signing information SigningInformation signInfo = new SigningInformation (store, "key_alias", "key_pwd"); // Create signature field on the first page Rectangle2D signBounds = new Rectangle2D.Double (36, 36, 144, 48); SignatureField signField = pdfDoc.addSignatureField(0, "signature", signBounds); // Apply digital signature pdfDoc.signDocument(signField, signInfo); // Save the document pdfDoc.saveDocument ("output.pdf"); |
Download Full Java Sample Code to Sign a PDF
You can create a sample PKCS#12 file using Java’s keytool program. The command line to create a test file is as follows:
keytool -genkey -keystore test.pfx -storetype pkcs12 -storepass store_pwd -keypass key_pwd -alias key_alias'
'.$f->get_tpl_var('file_display_name',$e).'
'.((($f->get_tpl_var('file_post_id',$e)) && get_the_ID() != ($f->get_tpl_var('file_post_id',$e)))?('» '.__(__('Post', 'wp-filebase')).''):('')).'
'.$f->get_tpl_var('file_name',$e).'
'.((($f->get_tpl_var('file_version',$e)))?(''.__(__('Version:', 'wp-filebase')).' '.$f->get_tpl_var('file_version',$e).'
'):('')).'
'.$f->get_tpl_var('file_name',$e).'
'.((($f->get_tpl_var('file_version',$e)))?(''.__(__('Version:', 'wp-filebase')).' '.$f->get_tpl_var('file_version',$e).'
'):('')).'
'.$f->get_tpl_var('file_size',$e).'
'.$f->get_tpl_var('file_hits',$e).' '.__(__('Downloads', 'wp-filebase')).'
'.__(__('Details', 'wp-filebase')).'
'.$f->get_tpl_var('file_hits',$e).' '.__(__('Downloads', 'wp-filebase')).'
'.__(__('Details', 'wp-filebase')).'