After much tinkering, I've been able to find a way to dynamically populate a signature image to the bottom of a PDF as follows:
PdfReader reader = new PdfReader(...);
PdfStamper stp = PdfStamper.createSignature(reader, os, '\0');
PdfSignatureAppearance sap = stp.getSignatureAppearance();
sap.setCrypto(key, chain, null, PdfSignatureAppearance.SELF_SIGNED);
sap.setCertificationLevel(PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED);
Image image = Image.getInstance(imageBytes);
sap.setRender(PdfSignatureAppearance.SignatureRenderGraphicAndDescription);
sap.setSignatureGraphic(image);
sap.setAcro6Layers(true);
sap.setImage(null);
int page = reader.getNumberOfPages();
Rectangle pageSize = reader.getPageSize(page);
int verticalPosition = (int)(pageSize.getBottom() + 70);
int signatureEnd = (int) verticalPosition + 50;
position = new Rectangle(50, verticalPosition, 250, signatureEnd);
sap.setVisibleSignature(position, page, null);
No comments:
Post a Comment