Search code examples
itext7

iText7 Digital Signature Image Alignment


In iText7 when I add an image to a digital signature the image defaults to being right in the center of the Rect I've defined with any text aligned to the right. Is there a way to shift the image to aligned to the left of the digital signature's Rect?

com.itextpdf.layout.element.Image has a way to align itself to the left. But the PdfSignatureAppearance.setSignatureGraphic() requires an ImageData param.


Solution

  • You can design the signature appearance in a completely custom manner by retrieving the PdfFormXObject Layer 2 and drawing on it:

    PdfSigner signer = ...
    PdfSignatureAppearance appearance = signer.getSignatureAppearance();
    PdfFormXObject layer2 = appearance.getLayer2();
    try (Canvas layer2Canvas = new Canvas(layer2, signer.getDocument())) {
        [... design your signature appearance on layer2Canvas ...]
    }
    

    If you don't want to do that, though, iText designs it itself hardly leaving you any options.