Hi,
I am building an App able to collect a signature, store it in the database and display it on a report.
I used a signature pad script (https://github.com/szimek/signature_pad), with a HTML object to capture the signature.
I then used the following code to store the signature as data and store it in the database:
var dataURL = signaturePad.toDataURL();
$('#signature_json').val(dataURL).change();
The format of the data obtained looks like this: "data:image/png;base64,xyzjsksl....."
How do I display a picture saved in the format above, on my pdf report?
Thank you
Welcome to the nuBuilder Forums!
Join our community by registering and logging in.
As a member, you'll get access to exclusive forums, resources, and content available only to registered users.
Join our community by registering and logging in.
As a member, you'll get access to exclusive forums, resources, and content available only to registered users.
Signature Capture and Display on report
-
- nuBuilder Team
- Posts: 4565
- Joined: Sun Oct 14, 2018 6:43 pm
- Has thanked: 76 times
- Been thanked: 529 times
- Contact:
Re: Signature Capture and Display on report
Hi,
I modified nuCreateFile() so that base 64 encoded images can be displayed.
Edit nucommon.php and replace nuCreateFile() with the function below.
Let me know if it works for you.
I modified nuCreateFile() so that base 64 encoded images can be displayed.
Edit nucommon.php and replace nuCreateFile() with the function below.
Let me know if it works for you.
Code: Select all
function nuCreateFile($j) {
if ($j == '') return '';
$id = nuID();
if (nuStringStartsWith('data:image', $j)) {
$type = explode('/', mime_content_type($j)) [1];
$file = sys_get_temp_dir() . "/$id." . '.' . $type;
list($type, $j) = explode(';', $j);
list(, $j) = explode(',', $j);
file_put_contents($file, base64_decode($j));
}
else {
$f = json_decode($j);
$type = explode('/', $f->type);
$type = $type[1];
$file = sys_get_temp_dir() . "/$id." . $type;
$h = fopen($file, 'w');
$d = base64_decode($f->file);
$p = explode(';base64,', $d);
$p = $p[1];
$data = base64_decode($p);
fwrite($h, $data);
fclose($h);
}
return $file;
}