PDF Formularfelder füllen??

Bash, Shell, PHP, Python, Perl, CGI
powergrafx_mmn
Posts: 17
Joined: 2004-08-10 13:32

PDF Formularfelder füllen??

Post by powergrafx_mmn » 2005-09-27 10:38

Hallo an alle!

Habe folgendes Problem - hoffe, mir kann jemand helfen:

Ist und WIE(???) ist es möglich, bei einem vorhandenen PDF mit Formularfeldern, diese per PHP zu füllen??

Konkret: Ich habe einen ausfüllbaren Vertrag als PDF Datei mit Eingabefeldern vorliegen - Felder z.B. f_vorname, f_name, ...

Nun habe ich ein PHP Script, welches die Eingaben vom Nutzer fordert. Der Kunde füllt das PHP Formular aus, welches die Daten an das PDF weitergibt und das komplett ausgefüllte PDF zum download anbietet.

Hoffe, es wurde verstanden. Ich weiss, dass es mit der PDFLib (bzw. mit dem Server) geht, doch die 1300 € dafür sind mir etwas zu viel - es müsste doch auch anders über FDF möglich sein - oder?? Habe schon einige Ansätze im Netz gefunden, doch hänge ich immer wieder an folgendem Problem:

Ich ertellt per PHP ein FDF File - das ist okay und funktioniert, doch kann ich dieses NIE mit dem PDF verknüpfen??!? Da bekomme ich dauernd so eine besch... Meldung beim IE - beim Opera oder Firefox lädt der mir wenigstens das PDF unausgefüllt herunter.

Wenn ich das FDF File so herunterlade und den Link zu dem Originalpdf darin auf mein lokales PDF ändere, dann funktioniert alles prima - nur eben auf dem Server nicht.

Hoffe, es gibt jemanden der helfen kann.

Mfg

S. Klein
[powergrafx::mmn]

primus
Posts: 18
Joined: 2003-01-21 15:11

Re: PDF Formularfelder füllen??

Post by primus » 2005-09-27 10:52

das ist mit der pdflib (http://www.pdflib.com) und dem für den acrobat erhältlichen plugin möglich.

du platzierst mit dem plugin (unsichtbare) felder in deinem pdf dokument, und kannst diese aus dem phpscript direkt mit der pdflib ansprechen und füllen.

// edit: hab ja gesehen das du nicht mit der pdflib aufgrund des preises arbeiten willst. dann ist es dir nicht möglich, formularfelder zu ändern in einem pdf.

du kannst nur pdfs mit der fpdf klasse hernehmen und an, im phpscript vorgesetzten positionsangaben, stellen platzieren. könnte deiner thematik auch recht nahe kommen.
Last edited by primus on 2005-09-27 10:54, edited 1 time in total.

powergrafx_mmn
Posts: 17
Joined: 2004-08-10 13:32

Re: PDF Formularfelder füllen??

Post by powergrafx_mmn » 2005-09-27 10:54

Danke für die schnelle Antwort. Habe ja auch geschrieben, dass es über die PDFLib möglich ist, doch für diesen Zweck ist mir die PDFLib einfach zu teuer!

Gibt es noch eine ANDERE Lösung??

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: PDF Formularfelder füllen??

Post by stefanpropehan » 2005-09-27 11:22

Gibt es noch eine ANDERE Lösung??
Wurde doch geschrieben... http://www.fpdf.org

--
Stefan

powergrafx_mmn
Posts: 17
Joined: 2004-08-10 13:32

Re: PDF Formularfelder füllen??

Post by powergrafx_mmn » 2005-09-27 11:29

Danke für die Antwort,

das mit dem fpdf.org ist mir schon bekannt, doch leider funktioniert bei mir das serverseitig mit dem verknüpfen der PDF Files nicht...

Woran kann das liegen?

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: PDF Formularfelder füllen??

Post by stefanpropehan » 2005-09-27 13:02

Bitte lass Dir doch nicht alles vorkauen, hättest du die Seite gelesen und ein wenig Eigeninitiative gezeigt hättest du folgenden Link entdeckt.

http://fpdi.setasign.de/

--
Stefan

flo
RSAC
Posts: 2297
Joined: 2002-07-28 13:02
Location: Berlin

Re: PDF Formularfelder füllen??

Post by flo » 2005-09-27 15:31

Bin im Thema nicht mehr so drin - das letzte Mal vor drei Jahren was mit gemacht - aber Dir ist schon klar, daß der Client das "fdf" aufmachen muß, und in dem das PDF refenrenziert sein muß?

flo.

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: PDF Formularfelder füllen??

Post by stefanpropehan » 2005-09-27 16:03

Also wie ich das sehe möchtest du folgendes...

Der Kunde soll ein Formular ausfüllen (normales HTML Formular) -> dieses wird per Post oder GET zum Server gesandt -> der Server erstellt aus den Eingaben des Formulars + eines vorhanden PDF ein neues PDF -> und sendet dieses anschließend zurück an den Browser. Also nix besonderes und genau mit den freien PHP Biblotheken die hier genannt wurden zu realisieren.

Oder stimmt jetzt etwas an meiner Zusammenfassung nicht?! Wie du das nun Programmieren musst, wird Dir hier niemand mal so schnell in 3 Sätzen erklären. Solltest du jemand benötigen der Dir dieses Programmiert kannst du dich gerne vertrauensvoll an mich wenden Ich sende Dir nach einer genauen Programmbeschreibung deinerseits, gerne ein Angebot mit Kostenabschätzung zu. :-D :-D

--
Stefan

twisterchen
Anbieter
Posts: 233
Joined: 2005-07-14 14:13

Re: PDF Formularfelder füllen??

Post by twisterchen » 2005-09-27 18:20

Hallo

also ich habe das auch bei mir laufen und das funktioniert super

Quelle


g8z at yahoo dot com
18-Oct-2004 08:46
This is for users who are looking for a way to merge HTML form data with a PDF Form, then output the PDF Form with data populated in it, to a web browser.

This is a pure PHP solution which does NOT require the FDF toolkit. Contributed by http://www.TUFaT.com

Code: Select all

This is for users who are looking for a way to merge HTML form data with a PDF Form, then output the PDF Form with data populated in it, to a web browser.

This is a pure PHP solution which does NOT require the FDF toolkit. Contributed by www.TUFaT.com

<?php

// the full http path to the PDF form
$form = 'http://my_domain.com/my_pdf_form.pdf';

function create_fdf ($pdffile, $strings, $keys)
{
   $fdf = "%FDF-1.2n%â??â??Å?â?n";
   $fdf .= "1 0 obj n<< /FDF << /Fields [n";

   foreach ($strings as $key => $value)
   {
       $key = addcslashes($key, "nrt\()");
       $value = addcslashes($value, "nrt\()");
       $fdf .= "<< /T ($key) /V ($value) >> n";
   }
   foreach ($keys as $key => $value)
   {
       $key = addcslashes($key, "nrt\()");
       $fdf .= "<< /T ($key) /V /$value >> n";
   }

   $fdf .= "]n/F ($pdffile) >>";
   $fdf .= ">>nendobjntrailern<<n";
   $fdf .= "/Root 1 0 R nn>>n";
   $fdf .= "%%EOF";

   return $fdf;
}

// Fill in text fields
$strings = array(
   'date' => '10/17/2004',
   'full_name' => 'Joe Doe',
   'phone_num' => '123-4567',
   'company' => 'ACME Widgets',
   'amount' => 'USD 100.00'
   );

// Fill in check boxes/radio buttons
$keys = array('
   gender' => 'male',//radio button
   'is_adult' => 'Off',//checkbox
   'urgent' => 'On'//checkbox
   );

// Output the PDF form, with form data filled-in
header('Content-type: application/vnd.fdf');
echo create_fdf($form, $strings, $keys);

?>
http://de3.php.net/manual/de/ref.fdf.php

Gruss Twisterchen

flo
RSAC
Posts: 2297
Joined: 2002-07-28 13:02
Location: Berlin

Re: PDF Formularfelder füllen??

Post by flo » 2005-09-27 20:03

FDFs sind prinzipiell nur Textdateien - nur, bis man das Prinzip dahinter verstanden hat, kann es halt dauern. Vor allem dann, wenn einem die paar Seiten Adobe-Doku zum Thema zuviel sind.

Ansonsten kann man dazu die "postscript- und PDF-Bibel" empfehlen, Autor Thomas Merz, der ja auch für die PDflib verantwortlich ist. Lohnt sich und ist spannend zu lesen.

flo.

twisterchen
Anbieter
Posts: 233
Joined: 2005-07-14 14:13

Re: PDF Formularfelder füllen??

Post by twisterchen » 2005-09-27 22:26

@ Flo nicht Persönlich nehmen

Wie schonmal hier gesagt ich habe dazu eine andere Meinung Stures Doku lesen bringt nichts da kapiert mann nur 5% von dem was mann eigentlich verstehen will denn die Doku ist keine Anleitung zu jedem Spezifischem Problem darum """" Beispiele > anschauen > verstehen > ausprobieren >selbermachen """"

Ich glaub nicht, das jemand, wenn er ein PHP Buch gelesen hat, dass er weiss wie man PHP Programmiert.



Gruss
Twisterchen



:wink:

flo
RSAC
Posts: 2297
Joined: 2002-07-28 13:02
Location: Berlin

Re: PDF Formularfelder füllen??

Post by flo » 2005-09-28 08:01

Ich hatte von stur nichts gesagt. :-)


In der Adobe-Doku zu fdf steht das Textformat und die Mime-Konfigurationen in allen Einzelheiten beschrieben - mit Beispielen für praktische Anwendungen. Punkt. Ab hier kann man einen gut dressierten Affen davor setzen und per PHP, Python, Perl oder was weiß nicht alles ein Textfile erzeugen, das ein PDF mit Daten beschickt. Speziell Adobe hat schon relativ viele sogenannter Standards definiert, bei denen nun mal eine ordentliche Doku obligatorisch ist und die Jungs machen das sehr gut.

Nichtsdestotrotz ist FDF für die Personalisierung von PDFs keine vernünftige Anwendung und höchstens ein Notbehelf - die Stärken von FDF liegen woanders.

flo.

powergrafx_mmn
Posts: 17
Joined: 2004-08-10 13:32

Re: PDF Formularfelder füllen??

Post by powergrafx_mmn » 2005-10-10 11:21

Also für alle, die es interessiert habe ich eine Lösung gefunden und mir meine PHP Funktionen erstellt:

PDFTK von accesspdf.com genommen und auf meinem Server installiert...

Nun:

- PHP Dokument mit Formularfeldern wie im Original PDF erstellt
- diese werden über eine Funktion geparst und ein temporäres FDF wird erstellt und auf dem Server gespeichert
- via "pdftk" wird das Original-PDF mit den Formulardaten des FDF gefüllt und unter einem neuen Dateinamen gespeichert
- FDF Datei wird gelöscht und neues, gefülltes PDF wird per Email versandt

Funktioniert rasend schnell und super einfach... Habe mir dafür einfach 4 kleine Funktionen geschrieben...

@Twisterchen
Danke für Deine Lösung - diese hatte ich doch aber vorher auch schon gefunden. Bei dieser Lösung gibt es nur massive Probleme, wenn der Adobe Reader nicht richtig installiert wurde...



Mfg

Sascha Klein
[powergrafx::mmn]