Php 如何将用户签名从Web表单传输到pdf模板?
我有一个web表单,它使用HTML5画布元素允许用户签名。提交表单时,所有字段值和base64字符串,例如数据:image/png;base64,处理并存储包含用户签名的blahblahetc 我想用提交的数据填充我的pdf模板,并在表单上签名,但我正在努力完成签名任务 我在研究过程中发现了一种技术,建议我可以使用以下方法将签名写成pdf按钮:Php 如何将用户签名从Web表单传输到pdf模板?,php,html5-canvas,base64,pdftk,fdf,Php,Html5 Canvas,Base64,Pdftk,Fdf,我有一个web表单,它使用HTML5画布元素允许用户签名。提交表单时,所有字段值和base64字符串,例如数据:image/png;base64,处理并存储包含用户签名的blahblahetc 我想用提交的数据填充我的pdf模板,并在表单上签名,但我正在努力完成签名任务 我在研究过程中发现了一种技术,建议我可以使用以下方法将签名写成pdf按钮: << /T (button1)/APRef << /N << /F (http://www.yoursite.com
<< /T (button1)/APRef << /N << /F (http://www.yoursite.com/pfds/icons.pdf)/Name (icon3)>> >> >>
然而,我不能设法让这个工作。我不知道签名是否必须准备为.png、.pdf或其他格式。我可以在服务器上成功地生成一个.png,但没有尝试将它应用到.pdf,因为我不知道是否需要它
我正在使用pdftk用dynamic.fdf文件填充template.pdf。我需要对签名按钮进行任何特殊准备吗?我想我读过一些关于将布局设置为“仅图标”的内容。因为我找不到将签名作为按钮应用于pdf的方法,所以我不得不摆弄和破解,以便将所有表单数据和签名从服务器获取到新的pdf 首先fopen/f将表单值写入新的fdf,然后使用pdftk生成未签名的pdf:
echo exec("cd $submissions_path/; $pdftk \"$template\" fill_form \"$fdf\" output \"$unsigned_pdf\"; chmod 777 \"$unsigned_pdf\";");
然后fopen/f将我的base64签名写入签名图像:
$fp=fopen("$submissions_path/$simg","wb");
fwrite($fp,base64_decode($scode));
fclose($fp);
然后生成一个.html水印,并使用mPDF将其转换为水印.pdf。请原谅使用表格,mPDF不喜欢我的:
最繁琐的部分是在水印html上正确设置签名图像的大小和位置
$watermark_pdf="InstallOrder_{$submissionID}_Watermark.pdf";
$watermark_html="<table style=\"width:792px;height:1123px;\"><tr>";
$watermark_html.="<td colspan=\"2\" style=\"padding-top:900px;padding-left:70px;width:240px;height:20px;\">{$watermark[CustomerSignature]}</td>";
$watermark_html.="</tr><tr>";
$watermark_html.="<td style=\"padding-top:16px;padding-left:69px;width:240px;height:20px;\">{$watermark[OwnerSignature]}</td>";
$watermark_html.="<td style=\"padding-top:16px;padding-left:169px;width:240px;height:20px;\">{$watermark[ManagerSignature]}</td>";
$watermark_html.="</tr></table>";
include("../mpdf/mpdf.php"); //Include mPDF Class
$mpdf=new mPDF('','',0,'',0,0,0,0,0,0,'P'); // Create new mPDF Document
$mpdf->WriteHTML($watermark_html);
$mpdf->Output("$watermark_pdf","F"); //save file to server - may include a path
echo exec("cd $submissions_path/; $pdftk \"$unsigned_pdf\" stamp \"$watermark_pdf\" output \"$pdf\"");