Add Digital Signature to PDF using Java(iText)
Jars Files:
itext-2.1.7.jar
itextpdf-5.4.2.jar
bcprov-ext-jdk14-1.47.jar
bcprov-1.39.jar
-------------------------------------------------------------------------
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import javax.security.cert.Certificate;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfSignatureAppearance;
import com.lowagie.text.pdf.PdfStamper;
public class pdfSign1 {
public static void main(String args[]) {
try {
KeyStore ks = KeyStore.getInstance("pkcs12");
//Loads keystore file which contains Private key and Public key
//Please see Generate Keystore
ks.load(new FileInputStream("C:\\my_keystore.pfx"), "my_password".toCharArray());
String alias = (String) ks.aliases().nextElement();
PrivateKey key = (PrivateKey) ks.getKey(alias, "my_password".toCharArray());
java.security.cert.Certificate[] chain = ks.getCertificateChain(alias);
PdfReader reader = new PdfReader("C:\\Test.pdf");
FileOutputStream fout = new FileOutputStream("C:\\signed.pdf");
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0');
PdfSignatureAppearance sap = stp.getSignatureAppearance();
sap.setCrypto(key, chain, null,PdfSignatureAppearance.SELF_SIGNED);
sap.setReason("I'm the author");
sap.setLocation("India");
// comment next line to have an invisible signature
sap.setVisibleSignature(new Rectangle(100, 100, 200, 200), 1, null);
stp.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
itext-2.1.7.jar
itextpdf-5.4.2.jar
bcprov-ext-jdk14-1.47.jar
bcprov-1.39.jar
-------------------------------------------------------------------------
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import javax.security.cert.Certificate;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfSignatureAppearance;
import com.lowagie.text.pdf.PdfStamper;
public class pdfSign1 {
public static void main(String args[]) {
try {
KeyStore ks = KeyStore.getInstance("pkcs12");
//Loads keystore file which contains Private key and Public key
//Please see Generate Keystore
ks.load(new FileInputStream("C:\\my_keystore.pfx"), "my_password".toCharArray());
String alias = (String) ks.aliases().nextElement();
PrivateKey key = (PrivateKey) ks.getKey(alias, "my_password".toCharArray());
java.security.cert.Certificate[] chain = ks.getCertificateChain(alias);
PdfReader reader = new PdfReader("C:\\Test.pdf");
FileOutputStream fout = new FileOutputStream("C:\\signed.pdf");
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0');
PdfSignatureAppearance sap = stp.getSignatureAppearance();
sap.setCrypto(key, chain, null,PdfSignatureAppearance.SELF_SIGNED);
sap.setReason("I'm the author");
sap.setLocation("India");
// comment next line to have an invisible signature
sap.setVisibleSignature(new Rectangle(100, 100, 200, 200), 1, null);
stp.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Comments
Post a Comment