Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

signature as BLOB for SQL DB? #479

Closed
chenks opened this issue Apr 27, 2020 · 7 comments
Closed

signature as BLOB for SQL DB? #479

chenks opened this issue Apr 27, 2020 · 7 comments

Comments

@chenks
Copy link

chenks commented Apr 27, 2020

hi, is it possible to save the signature into an SQL database as a BLOB?
if it was possible then this would be a perfect solution for me.

@tbcooney
Copy link

tbcooney commented Jun 7, 2020

Sure is. We use it to handle rental agreements, and after a user draws their signature in the pad and clicks save, we insert a hidden field that submits to the server and contains the signaturePad.toData(). On the server side you can do a lot of things with this, like redraw the signature at a later date, draw the signature to a composited PDF and upload to an AWS bucket to reference later.

<input type="hidden" name="document_templates_signature_request[signature]" value="[[{"x":61.84375,"y":228,"time":1591550609648},{"x":68.84375,"y":213,"time":1591550609782},{"x":73.84375,"y":206,"time":1591550609798},{"x":81.84375,"y":198,"time":1591550609815},{"x":94.84375,"y":187,"time":1591550609832},{"x":102.84375,"y":179,"time":1591550609848},{"x":110.84375,"y":173,"time":1591550609864},{"x":117.84375,"y":170,"time":1591550609897},{"x":118.84375,"y":182,"time":1591550609947},{"x":108.84375,"y":215,"time":1591550609963},{"x":105.84375,"y":239,"time":1591550609979},{"x":104.84375,"y":265,"time":1591550609995},{"x":104.84375,"y":282,"time":1591550610012},{"x":105.84375,"y":294,"time":1591550610028},{"x":114.84375,"y":314,"time":1591550610044},{"x":123.84375,"y":318,"time":1591550610060},{"x":142.84375,"y":315,"time":1591550610077},{"x":156.84375,"y":307,"time":1591550610093},{"x":192.84375,"y":280,"time":1591550610109},{"x":198.84375,"y":274,"time":1591550610125},{"x":203.84375,"y":270,"time":1591550610141},{"x":218.84375,"y":259,"time":1591550610157},{"x":222.84375,"y":256,"time":1591550610174},{"x":227.84375,"y":255,"time":1591550610207},{"x":231.84375,"y":261,"time":1591550610240},{"x":238.84375,"y":267,"time":1591550610257},{"x":248.84375,"y":270,"time":1591550610273},{"x":287.84375,"y":269,"time":1591550610290},{"x":312.84375,"y":257,"time":1591550610307},{"x":355.84375,"y":226,"time":1591550610323},{"x":367.84375,"y":218,"time":1591550610341},{"x":387.84375,"y":202,"time":1591550610357},{"x":394.84375,"y":197,"time":1591550610374},{"x":403.84375,"y":192,"time":1591550610390},{"x":403.84375,"y":199,"time":1591550610407},{"x":394.84375,"y":237,"time":1591550610424},{"x":388.84375,"y":266,"time":1591550610440},{"x":386.84375,"y":301,"time":1591550610457},{"x":386.84375,"y":337,"time":1591550610475},{"x":387.84375,"y":355,"time":1591550610491},{"x":392.84375,"y":367,"time":1591550610507},{"x":386.84375,"y":337,"time":1591550610475}]]">

@chenks
Copy link
Author

chenks commented Jun 7, 2020

Sure is. We use it to handle rental agreements, and after a user draws their signature in the pad and clicks save, we insert a hidden field that submits to the server and contains the signaturePad.toData(). On the server side you can do a lot of things with this, like redraw the signature at a later date, draw the signature to a composited PDF and upload to an AWS bucket to reference later.

<input type="hidden" name="document_templates_signature_request[signature]" value="[[{"x":61.84375,"y":228,"time":1591550609648},{"x":68.84375,"y":213,"time":1591550609782},{"x":73.84375,"y":206,"time":1591550609798},{"x":81.84375,"y":198,"time":1591550609815},{"x":94.84375,"y":187,"time":1591550609832},{"x":102.84375,"y":179,"time":1591550609848},{"x":110.84375,"y":173,"time":1591550609864},{"x":117.84375,"y":170,"time":1591550609897},{"x":118.84375,"y":182,"time":1591550609947},{"x":108.84375,"y":215,"time":1591550609963},{"x":105.84375,"y":239,"time":1591550609979},{"x":104.84375,"y":265,"time":1591550609995},{"x":104.84375,"y":282,"time":1591550610012},{"x":105.84375,"y":294,"time":1591550610028},{"x":114.84375,"y":314,"time":1591550610044},{"x":123.84375,"y":318,"time":1591550610060},{"x":142.84375,"y":315,"time":1591550610077},{"x":156.84375,"y":307,"time":1591550610093},{"x":192.84375,"y":280,"time":1591550610109},{"x":198.84375,"y":274,"time":1591550610125},{"x":203.84375,"y":270,"time":1591550610141},{"x":218.84375,"y":259,"time":1591550610157},{"x":222.84375,"y":256,"time":1591550610174},{"x":227.84375,"y":255,"time":1591550610207},{"x":231.84375,"y":261,"time":1591550610240},{"x":238.84375,"y":267,"time":1591550610257},{"x":248.84375,"y":270,"time":1591550610273},{"x":287.84375,"y":269,"time":1591550610290},{"x":312.84375,"y":257,"time":1591550610307},{"x":355.84375,"y":226,"time":1591550610323},{"x":367.84375,"y":218,"time":1591550610341},{"x":387.84375,"y":202,"time":1591550610357},{"x":394.84375,"y":197,"time":1591550610374},{"x":403.84375,"y":192,"time":1591550610390},{"x":403.84375,"y":199,"time":1591550610407},{"x":394.84375,"y":237,"time":1591550610424},{"x":388.84375,"y":266,"time":1591550610440},{"x":386.84375,"y":301,"time":1591550610457},{"x":386.84375,"y":337,"time":1591550610475},{"x":387.84375,"y":355,"time":1591550610491},{"x":392.84375,"y":367,"time":1591550610507},{"x":386.84375,"y":337,"time":1591550610475}]]">

Many thanks, could I possibly pick your brains some more about this?

@tbcooney
Copy link

tbcooney commented Jun 7, 2020

Sure thing. If you want to put your email in your display profile, I will email you this afternoon

@chenks
Copy link
Author

chenks commented Jun 7, 2020

Sure thing. If you want to put your email in your display profile, I will email you this afternoon

Sure thing. I have done that now

@apikman
Copy link

apikman commented Sep 24, 2020

I would love some help with this to.

@kevingrabher
Copy link

@apikman - another solution is described in #334

tl;dr -> depending on your browser-support needs you can just get the blob from the canvas

//select your canvas-html element
canvas.toBlob((theBlob) => {
  // do whatever with "theBlob"
});  

@chenks chenks closed this as completed Oct 25, 2020
@ghost
Copy link

ghost commented Oct 30, 2020

SORRY....i know this is closed, but i would LOOOOOOOOOOOOOVE some help on this too.
We are using an ERP solution with this Signature Tool for customers to confirm acceptance of services. On screen it looks great but the minute we print it looks TINY...the company who sold us the ERP solution has declined investing time in finding a solution..... :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants