PDF Formular ausfüllen (FDF)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PDF Formular ausfüllen (FDF)

    Hi@all

    folgende Problematik:
    Ich möchte gern ein PDF Formular mit vorgegebenen Formularfeldern über ein Online-Formular ausfüllen lassen.
    Habe mir schon verschiedene Informationen dazu im Internet angeschaut und durchgearbeitet.
    Trotzdem bin ich leider nicht zum gewünschten Erfolg gekommen.
    Also bitte ich ich euch jetzt um Hilfe.

    Hier form2fdf - examples formularfelder in einem PDFFormular vorbelegengibt es eine funktionierende DEMO als Kaufangebot (leider meines erachtens nach viel zu teuer, deshalb will ich es allein (mit eurer Hilfe) hinbekommen)

    Din folgenden Code habe ich aus verschiedenen Informationen zusammengetragen und bei mir eingesetzt.
    PHP-Code:
    <?php
    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;
    }

    $pdf_file 'http://'.$_SERVER['HTTP_HOST'].'/texte/formular_jugendschutz.pdf';
    $fdf_file dirname(__FILE__).'/texte/formular_jugendschutz_posted.fdf';

    # zusätzliche Werte setzen
    if(isset($_POST[submit]))
    {
     @
    header("Content-type: application/vnd.fdf");
     
    $fdf      createFDF($pdf_file,$_POST);
     
     
    # FDF File erzeugen
     
    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 "formular_jugendschutz_posted.fdf";

    }
    # Ausgabe in neuem Fenster
    if(isset($CREATED))
    {
    ?>
    <script type="text/javascript">
     var winURL = '<?php echo "http://".$_SERVER['HTTP_HOST']."/".str_replace(dirname(__FILE__).'/','',$fdf_file); ?>'; 
     var winNam = "FENSTER";
     var winOpt = "width=1169, height=827, scrollbars=yes, menubar=no";
     var neuesObjekt = window.open(winURL, winNam, winOpt);
     
     breite = screen.width;
     hoehe  = screen.height;
     mp_hor = breite/2;
     mp_ver = hoehe/2;
     pos_x  = mp_hor-(1169/2);
     pos_y  = mp_ver-(827/2);
     neuesObjekt.moveTo(pos_x,pos_y);
     neuesObjekt.focus();
    </script>
    <?php
    }
    ?>
    Ich teste local mit XAMPP.

    Die Formularfelder in der PDF haben dieselben Namen wie die im Online-Formular.
    Im IE /FF funktioniert es local über XAMPP
    Opera / Chrome und andere kann ich nicht testen

    Online allerdings funktioniert es nur im IE
    Im FF bekomme ich nur eine textseite mit dem Inhalt der FDF angezeigt
    Opera macht gar nichts

    Wäre echt nett von euch wenn ihr euch der Sache mal annhemen könntet und mir weiterhelft.

    DEMO:http://www.scc-schwarzheide.de -> Jugendschutz

  • #2
    Hi@all

    Ich möchte gern den Thread nochmal neu aufgreifen, da ich inzwischen das Projekt wieder in mit der selben Problematik in Arbeit habe.

    Zum testen: SCC-Jugendschutz

    Funktioniert Local unter XAMPP (IE / FF ) Opera/Chrome kann ich nicht testen

    Allerdings wenn ich das auf dem Server habe wird das PDF nicht gefüllt.
    Auf mobilen Geräten (iPad/iPhone) funktioniert es ebenfalls nicht - hier wird mir das generierte PDF gar nicht erst geöffnet.

    Wäre nett wenn sich das mal jemand anschauen und Hilfestellung leisten könnte, danke.

    PHP-Code:
    <?php
    ##################################################
    # Schwarzheider Carneval Club e.V. - Jugendschutz
    ##################################################
    #Direktaufruf verhindern
    if(!defined('ZSCHORNEGOSDA')) { header("Location: start.php"); exit;}

    # Arbeitspfad ermitteln
    $myBase =  (( (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) ? 'https://' 'http://' ) . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF'])."/";
    #echo $myBase;

    # PDF-File
    $pdf_file $myBase.'data/formular_erziehungsaufgaben.pdf'// Local
    $fdf_file dirname(__FILE__).'/data/formular_erziehungsaufgaben_posted.fdf';

    # FDF erzeugen
    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;
    }

    # zusätzliche Werte setzen
    if(isset($_POST) && is_array($_POST) && count($_POST))
    {
            
    // we will use this array to pass to the createFDF function
            
    $data=array();
            
            
    // This displays all the data that was submitted. You can
            // remove this without effecting how the FDF data is generated.
            // echo'<pre>POST '; print_r($_POST);echo '</pre>';

     
    $_POST['eltern_datum']='Schwarzheide, '.date('d.m.Y/H:i:s');
     
    $_POST['person_datum']='Schwarzheide, '.date('d.m.Y/H:i:s');    
     @
    header("Content-type: application/vnd.fdf");
     
    $fdf      createFDF($pdf_file,$_POST);
     
     
    # FDF File erzeugen und speichern
     
    if($fp=fopen($fdf_file,'w'))
     {
      
    fwrite($fp,$fdf,strlen($fdf));
      
    $CREATED=TRUE;
      unset(
    $_POST);  
     }
     else
     {
      echo 
    'Unable to create file: '.$fdf_file;
      
    $CREATED=FALSE;
     }
     
    fclose($fp);
    }

    # Ausgabe der neuen PDF in neuem Fenster
    if(isset($CREATED))
    {
    ?>
    <script type="text/javascript">
     // aktueller Arbeitspfad)
     var path = ((window.location.href.match(/^(http.+\/)[^\/]+$/) != null) ? window.location.href.match(/^(http.+\/)[^\/]+$/)[1] : window.location);

     var winURL = '<?php echo $myBase.str_replace(dirname(__FILE__).'/','',$fdf_file); ?>'; 
     
     var winNam = "FENSTER";
     var winOpt = "width=1169, height=827, scrollbars=yes, menubar=no";
     var neuesObjekt = window.open(winURL, winNam, winOpt);
     
     breite = screen.width;
     hoehe  = screen.height;
     mp_hor = breite/2;
     mp_ver = hoehe/2;
     pos_x  = mp_hor-(1169/2);
     pos_y  = mp_ver-(827/2);
     neuesObjekt.moveTo(pos_x,pos_y);
     neuesObjekt.focus();
    </script>
    <?php
    }
    ?>
    <!-- ENDE PHP -->

    <!-- Content Jugendschutz -->
    <section id="content">
     <div class="container">
      <div class="row">
       <div class="col-12">
    <!-- Inhalt -->    
    <section>
         <header>
          <h2>Kinder- und Jugendschutz</h2>
           <h3>Tanzen statt 'torkeln'</h3>
         </header>



     <a name="formular"></a>
     <hr /><br>
     
     <h2>Formular zur &Uuml;bertragung von Erziehungsaufgaben</h2>
     <p>Das notwendige Formular kannst du dir einfach mit Hilfe des unten stehenden Formulars generieren, oder alternativ auch das leere Formular zum Ausdrucken und Ausf&uuml;llen herunterladen.<br />

     <?php
     
    if(!isset($CREATED))
     {
     
    ?>
     
     <form name="muttizettel" id="muttizettel" class="col-6" method="post" action="<?php echo $_SERVER['REQUEST_URI'];?>#formular" >
      <input type="hidden" name="nsp" />
      <h3>Angaben des Personensorgebrechtigten ( Elternteil / Vormund )</h3>
      <label for="eltern_vorname">Vorname</label><input id="eltern_vorname" type="text" name="eltern_vorname"  /><br />
      <label for="eltern_nachname">Nachname</label><input id="eltern_nachname" type="text" name="eltern_nachname" /><br />
      <label for="eltern_strasse">Straße &amp; Nr.</label><input id="eltern_strasse" type="text" name="eltern_strasse" /><br />
      <label for="eltern_ort">PLZ &amp; Ort</label><input id="eltern_ort" type="text" name="eltern_ort" /><br />
      <label for="eltern_telefon">Telefon</label><input id="eltern_telefon" type="text" name="eltern_telefon" /><br /><br />
      <h3>Angaben zur minderj&auml;hrigen Person</h3>
      <label for="kind_vorname">Vorname</label><input id="kind_vorname" type="text" name="kind_vorname" /><br />
      <label for="kind_nachname">Nachname</label><input id="kind_nachname" type="text" name="kind_nachname" /><br />
      <label for="kind_strasse">Straße &amp; Nr.</label><input id="kind_strasse" type="text" name="kind_strasse" /><br />
      <label for="kind_ort">PLZ &amp; Ort</label><input id="kind_ort" type="text" name="kind_ort" /><br />
      <label for="kind_geburtstag">Geburtstag ( tt.mm.jjjj )</label><input id="kind_geburtstag" type="text" name="kind_geburt" /><br /><br />
      <h3>Angaben zur erziehungsbeauftragten Person</h3>
      <label for="person_vorname">Vorname</label><input id="person_vorname" type="text" name="person_vorname" /><br />
      <label for="person_nachname">Nachname</label><input id="person_nachname" type="text" name="person_nachname" /><br />
      <label for="person_strasse">Straße &amp; Nr.</label><input id="person_strasse" type="text" name="person_strasse" /><br />
      <label for="person_ort">PLZ &amp; Ort</label><input id="person_ort" type="text" name="person_ort" /><br />
      <label for="person_geburtstag">Geburtstag ( tt.mm.jjjj )</label><input id="person_geburtstag" type="text" name="person_geburt" /><br /><br />
      <h3>Zusatzangaben</h3>
      <label for="datum">Datum ( tt.mm.jjjj )</label><input id="datum" type="text" name="event_datum" /><br />
      <label for="event">Veranstaltung</label><input id="event" type="text" name="event_name" /><br />  
      <label for="uhrzeit">Uhrzeit-Ende ( hh:mm )</label><input id="uhrzeit" type="text" name="event_uhrzeit" /><br /><br />
      <label for="submit">&nbsp;</label><input id="submit" value="Formular generieren und anzeigen" type="submit" name="submit" />
      <input type="hidden" name="eltern_datum" value="" />
      <input type="hidden" name="person_datum" value="" />
      </form>
      
     <?php
     
    }
     else
     {
     echo 
    "<hr><br><p style='border: 1px solid #CC0000; color:#CC0000; padding:15px;'>Ihr Formular wurde erzeugt und zum Ausdruck angezeigt.<br />
           Wollen sie ein weiteres Formular ausf&uuml;llen, rufen sie den Men&uuml;punkt '<a href='start.php?page=jugendschutz'>JUGENDSCHUTZ</a>' erneut auf.</b><br /><br />
           Sollten sie nur eine einfache Text-Datei mit normalen Zeicheninhalt angezeigt bekommen dann funktioniert ihr Adobe PDF Plug-In des Browsers nicht korrekt, installieren sie dieses erneut oder vewenden sie einen anderen Browser.</p>"
    ;
     }
     
    ?>

     <br><a title="Download Formular Jugendschutz" href="data/formular_erziehungsaufgaben.pdf" target="_blank">Download leeres Formular zur &Uuml;bertragung von Erziehungsaufgaben - zum selber ausf&uuml;llen!</a></p> 
     <!-- Beginn Info Adobe -->
     <img style="cursor:pointer;" src="images/logo_getAcrobat.gif" alt="Download Acrobat Reader" onclick="window.open('http://www.adobe.de/products/acrobat/readstep2.html','')" />           
     <span style="font-size:.75em;">&nbsp;&nbsp;&nbsp;Zum Lesen von *.pdf Dateien ben&ouml;tigen sie den Adobe Acrobat Reader, den sie hier kostenlos downloaden k&ouml;nnen.</span>
     <!-- Ende Info Adobe -->

     
          
          <hr><br><br><p class="read_more"><a href="javascript:history.back()">..... zur&uuml;ck </a></p>
          
         </section>
       </div>
      </div>
     </div>
    </section>
    <!-- ENDE Content Jugendschutz -->
    THX@all

    Kommentar

    Lädt...
    X