Skip to main content

add Digital Signature to pdf with pdfKit and react-signature-canvas for NodeJS / GraphQL

to create hand-craft signature with signaturePad, add date and save to a pdf. then add signature PDF as an additional page attach to the main pdf.


** need remove alpha from image in order for pdfKit to create pdf by: 
1. set background color to whte

<SignaturePad
ref={sigPad}
backgroundColor="rgba(255,255,255,1)"
canvasProps={{ className: classes.sigPad }}
/>


2. to image/jpeg
const imageData = sigPad.current
.getTrimmedCanvas()
.toDataURL('image/jpeg')

3. merge pdfs using https://www.npmjs.com/package/easy-pdf-merge
export const mergePdfs = async (pdf1: string, pdf2: string, pdf: string) => {
return new Promise((resolve, reject) => {
merge([pdf1, pdf2], pdf, (error: any) => {
if (error) {
return reject(error)
}
resolve('')
})
})
}
====

Here are other ways to sign PDF:

https://www.youtube.com/watch?v=pUIWvJgkw8E

Node Library:


import signer from 'node-signpdf';
...
const signedPdf = signer.sign(
  fs.readFileSync(PATH_TO_PDF_FILE)
  fs.readFileSync(PATH_TO_P12_CERTIFICATE),
);

Comments