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