import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.cert.Certificate;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfSignatureAppearance;
import com.lowagie.text.pdf.PdfStamper;
public class MainClass {
public static void main(String[] args) throws Exception {
PdfReader reader;
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new FileInputStream(".keystore"), "string".toCharArray());
PrivateKey key = (PrivateKey) ks.getKey("key", "value".toCharArray());
Certificate[] chain = ks.getCertificateChain("foobar");
reader = new PdfReader("2.pdf");
FileOutputStream os = new FileOutputStream("1.pdf");
PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0');
PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
appearance.setCrypto(key, chain, null, PdfSignatureAppearance.SELF_SIGNED);
appearance.setReason("personal");
appearance.setLocation("Foobar");
appearance.setVisibleSignature("yoursig");
stamper.close();
}
}