PDF Formular über PHP ausfüllen mit FDF

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

2 thoughts on “PDF Formular über PHP ausfüllen mit FDF

  1. 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

  2. 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.