PDF Formular über PHP ausfüllen mit FDF


September 07, 2009 at 10:17
PHP

Weil ich es immer wieder brauche, hier mal ne kurze Anleitung wie es geht, PDF Formulare mit PHP auszufüllen. Man kann die Anleitung auch ncohmal genauer durchlesen unter http://koivi.com/fill-pdf-form-fields/ 1. Formular erstellen (oder woher die Daten auch sonst kommen mögen) Wie man ein HTML Formular erstellt, sollte allgemein bekannt sein. 2.  PDF Vorlage erstellen Man erstelle sein PDF mit Adobe Acrobat. Am besten nimmt man sich das unausgefüllte Formular so wie's im PDF aussehen soll als "page" des PDFs das man erstellt. In die Seite fügt man dann die Formularfelder ein, die man haben möchte (z.b. Tools -> Advanced Editing -> Text Field Tool) und gibt ihnen aussagekräftige Namen. Formular im Acrobat erstellen 3. Script Man fügt die Funktion createFDF seinem Dokument hinzu:
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;
}
4. Aufruf Dann übergibt man am einfachsten die POST Daten (dabei müssen allerdings die Felder des HTML Formulars so heißen wie die Felder des PDF Formulars):
$pdf_file='http://'.$_SERVER['HTTP_HOST'].'/media/vorlage.pdf';
$fdf_file=dirname(__FILE__).'/../media/posted.fdf';
$fdf=createFDF($pdf_file,$_POST);

// Create a file for later use
if($fp=fopen($fdf_file,'w')){
 fwrite($fp,$fdf,strlen($fdf));
 $CREATED=TRUE;
}else{
 echo 'Unable to create file: '.$fdf_file;
 $CREATED=FALSE;
}
fclose($fp);
return "posted.fdf";

Hinterlasse einen Kommentar:
Mario
27.04.2012
Hi, klingt soweit gut und nach stundenlanger Recherche endlich mal was brauchbares. Und, es funktioniert ! Aber!! FRAGE: wie mach ich nun aus der *. fdf Datei eine *.pdf welche 1. im Browser angezeigt und 2. zum Download angeboten wird ??? Hast du irgendwo ein Example oder ein fertiges Script/File Danke für die Hilfe

Niko
14.01.2013
Hallo, genau die Frage wo sich Mario stellt, stell ich mir momentan auch. Wäre super, wenn du dazu noch was posten könntest. Vielen Dank

Suche