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

Popular posts from this blog

A component is changing an uncontrolled input of type text to be controlled error in ReactJS - Formik

 https://stackoverflow.com/questions/47012169/a-component-is-changing-an-uncontrolled-input-of-type-text-to-be-controlled-erro default value can't be undefined  case 'listingBrokerOfficeName' : value = ( listingBroker || {}). officeName break change to: case 'listingBrokerOfficeName' : value = ( listingBroker || {}). officeName || '' break

apollo client v3 - clean up non-needed packages

v3: https://github.com/apollographql/apollo-client clean up: ApolloProvider useQuery, useMutation, useApolloClient Apollo Client >= 3 includes React hooks functionality out of the box. You don't need to install any additional packages. https://www.apollographql.com/docs/react/api/react/hooks/ //import { ApolloProvider } from '@apollo/react-hooks' import { ApolloProvider } from '@apollo/client/react' //import { useQuery, useMutation, useApolloClient } from '@apollo/react-hooks' import { useQuery, useMutation, useApolloClient } from '@apollo/client' How i can CATCH any error (network and graphql), and prevent promise.reject()  https://github.com/apollographql/apollo-client/issues/6469 npm uninstall @apollo/react-hooks https://github.com/apollographql/apollo-link npm uninstall apollo-link npm uninstall apollo-client npm uninstall apollo-link-error npm uninstall apollo-link-http npm uninstall apollo-link-ws npm uninstall apollo-cache-inmemory