First you need to create temporary .fdf file with input data and then use pdftk to mearge template pdf and .fdf to create filled pdf.
function createFDF($file,$info) {
$data = "%FDF-1.2\n%âãÏÓ\n1 0 obj\n<< \n/FDF << /Fields [ ";
foreach ($info as $field => $val) {
if (is_array($val)) {
$data .= '<</T('.$field.')/V[';
foreach ($val as $opt) {
$data .= '('.trim($opt).')';
}
$data .= ']>>';
} else {
$data .= '<</T('.$field.')/V('.trim($val).')>>';
}
}
$data .= "] \n/F (".$file.") /ID [ <".md5(time()).">\n] >>" .
" \n>> \nendobj\ntrailer\n" .
"<<\n/Root 1 0 R \n\n>>\n%%EOF\n";
return $data;
}
$fileName = "Template_PDF.pdf";
$fdf_file = "temporary.fdf";
$result_file = "Result.pdf";
$arr['a_variable'] = 'value or a variable';
$fdf_data = createFDF($fileName, $arr);
if ($fp=fopen($fdf_file,'w')) {
fwrite($fp,$fdf_data,strlen($fdf_data));
} else {
echo 'Unable to create file: ' . $fdf_file . '<br>';
}
fclose($fp);
exec("pdftk " . $fileName . " fill_form " . $fdf_file . " output " . $result_file);
thats it.