2013-03-06 16 views
8

編集可能なフィールドを持つPDFがあります。 HTMLフォームの値をこのPDFに渡したいと思います。私はFPDFを使用しようとしたが、それは動作しますが、pdfのフィールドはPDFに値を渡した後も編集できなくなります。PHPで編集可能なPDFに値を挿入し、編集可能にしておきます

もう1つの欠点は、値をPDFに渡すときにフィールドごとに正確な座標を指定する必要があることです。私は "PDF EDITABLE"を維持するために使用できる他のツールのアイデアはありますか?

私は、PDF http://www.setasign.de/products/pdf-php-solutions/fpdi/demos/simple-demo/

+0

私が見たほとんどのPDFライブラリにはこの機能がありません。 Google検索でこれが明らかになった:http://www.quickpdflibrary.com/faq/render-a-pdf-document-and-include-editable-form-fields.php –

+0

ありがとう。私にこれを見せてください。 –

答えて

5

を生成するには、次のコードを使用し私は本当に気に入っPHPでネイティブPDF充填方法を見つけることができませんでした。代わりにPHPを使用してXFDFを生成した後、pdftkを使用して埋め込み可能なPDFにプッシュします。 (このコードは命名されるように、あなたのPDFのフィールドが必要であることに注意してください。)ここで

は連想配列からのXFDFを生成する例関数です:

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; 
} 

はその後、私はXFDFその一時ファイルに書き込みます。

$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); 
} 

あなたは単語dont_ask前にコマンドで単語flattenを追加、編集不可能なPDFにしたいん場合。


あなたは、PDFフォームを埋めるに添付されていない場合は、HTMLからPDFへの変換にdompdfを使用し、その後、同様にHTMLでフォームを生成することができます。

関連する問題