2013-03-06 19 views
8

Düzenlenebilir alanları olan bir PDF'im var. Bir HTML formundaki değerleri bu PDF'ye aktarmak istiyorum. FPDF kullanmayı denedim ve çalışır, ancak pdf'deki alanlar artık değerleri PDF'ye geçirdikten sonra düzenlenemez.PHP ile değerleri düzenlenebilir PDF'ye yerleştirin ve düzenlenebilir durumda tutun

Diğer bir dezavantaj, değerleri PDF'ye geçirirken her alan için kesin koordinatları belirtmemiz gerektiğidir. "PDF EDITABLE" özelliğini saklamak için kullanabileceğim diğer araçlar hakkında herhangi bir fikir var mı?

Ben gerçekten sevdim yerel PHP'de PDF doldurma yöntemini bulamadı derginin PDF http://www.setasign.de/products/pdf-php-solutions/fpdi/demos/simple-demo/

+0

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 –

+0

Teşekkürler Matt. Bunu göreyim. –

cevap

5

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.

İlgili konular