を生成するには、次のコードを使用し私は本当に気に入っ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でフォームを生成することができます。
私が見たほとんどのPDFライブラリにはこの機能がありません。 Google検索でこれが明らかになった:http://www.quickpdflibrary.com/faq/render-a-pdf-document-and-include-editable-form-fields.php –
ありがとう。私にこれを見せてください。 –