oluşturmak için aşağıdaki kodu kullanılır. Bunun yerine, XFDF oluşturmak için PHP kullanıyorum, daha sonra pdftk'u doldurulabilir PDF'ye zorlamak için kullanıyorum. (Bu kodun adlandırılacak için PDF'nin alanları gerektirdiğini unutmayın.) Burada
bir ilişkisel diziden XFDF'den oluşturmak için bir örnek işlevidir:
function forge_xfdf($file,$info,$enc='UTF-8'){
$data='<?xml version="1.0" encoding="'.$enc.'"?>'."\n".
'<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">'."\n".
'<fields>'."\n";
foreach($info as $field => $val){
$data.='<field name="'.$field.'">'."\n";
if(is_array($val)){
$data.='<</T('.$field.')/V[';
foreach($val as $opt)
$data.='<value>'.$opt.'</value>'."\n";
}else{
$data.='<value>'.$val.'</value>'."\n";
}
$data.='</field>'."\n";
}
$data.='</fields>'."\n".
'<ids original="'.md5($file).'" modified="'.time().'" />'."\n".
'<f href="'.$file.'" />'."\n".
'</xfdf>'."\n";
return $data;
}
Sonra ben XFDF o geçici bir dosyaya yazma.
$empty_form = '/path/to/fillable/pdf/form.pdf'
$fdf_filename = tempnam(PDF_TEMP_DIR, 'fdf');
$output_filename = tempnam(PDF_TEMP_DIR, 'pdf');
$fdf_data = forge_xfdf($empty_form, $data, 'UTF-8');
if($fdf_fp = fopen($fdf_fn, 'wb')){
fwrite($fdf_fp, $fdf_data);
fclose($fdf_fp);
$command = '/usr/local/bin/pdftk "'.$empty_form.'" fill_form "'.$fdf_filename.'" output "'.$output_file.'" dont_ask';
passthru($command);
// SEND THE FILE TO THE BROWSER
unlink($output_file);
unlink($fdf_filename);
}
Eğer düzenlenemeyen PDF istiyorum yapmak kelimenin dont_ask
önce komuta sözcüğü flatten
eklemek edin. bir PDF formu doldurarak bağlı değilseniz
, daha sonra, hem HTML formu oluşturmak PDF HTML dönüştürmek için dompdf kullanabilirsiniz.
Gördüğüm çoğu PDF kitaplığının bu özelliği yok. Bir Google araması bunu açıkladı: http://www.quickpdflibrary.com/faq/render-a-pdf-document-and-include-editable-form-fields.php –
Teşekkürler Matt. Bunu göreyim. –