• PDF erstellen - ganz einfaches, schlichtes Beispiel

    Hier möchte ich ein kurzes Beispiel geben, wie man 'einfach' mit PHP pdf-Dateien generieren kann

    Dazu habe ich mir gedacht, dass es Sinn macht eine Kombination in diesem Tutorial zu wählen aus:
    - Datenbank-Inhalten
    - und per Formular übergeben Daten

    Um die ganze Sache zu vereinfachen bedienen wir uns einer fertigen Klasse. Einige gibt es im Angebot, persönlich habe ich Kontakt gehabt mit der, die gratis unter www.fpdf.de zur Verfügung gestellt wird.

    Dazu muss man natürlich die notwendigen Daten (von dort) zur Verfügung haben, was ich aber hier einmal voraussetze.

    das könnte nun wie folgt aussehen:
    PHP-Code:
    <?php
      
    function connect_to_database($db_host$db_login$db_passwd$db_name)
      {
        
    $return TRUE;
        if(!@
    mysql_connect($db_host$db_login$db_passwd))
          
    $return FALSE;
        if(!@
    mysql_select_db($db_name))
          
    $return FALSE;
        return 
    $return;
      }

      
    define('FPDF_FONTPATH','fpdf_font/');
      require(
    'fpdf.php');


      
    $db_host      'localhost';
      
    $db_login     'user_123';
      
    $db_passwd    'passwort';
      
    $db_name      'web_234_table_1';

      
    $pdf_autor    'Jann Hendrik';
      
    $pdf_titel    'meine erste pdf-Datei';
      
    $pdf_creator  'du selbst';
      
    $pdf_subject  'subjekt';
      
    $pdf_keywords 'keyword, schluesselwort, und so weiter, ...';

      if(!
    connect_to_database($db_host$db_login$db_passwd$db_name))
        die(
    '<h2>Fehler</h2>es konnte keine Verbindung zur Datenbank aufgebaut werden.');

        class 
    PDF extends FPDF
        
    {
          
    //Current column
          
    var $col=0;
          
    //Ordinate of column start
          
    var $y0;

          
    //Page header
          
    function Header()
          {
            
    $this->SetFont('Arial','B',10);
            
    $this->Ln(5);
            
    $this->y0=$this->GetY();
          }

          function 
    leftorright($col)
          {
            if(
    $col%== 0)
            {
              
    $setx 22;
              
    $this->AddPage();
              
    $this->SetLeftMargin($setx);
              
    $this->SetXY($setx10);
            }
            else
            {
              
    $setx 120;
              
    $this->SetLeftMargin($setx);
              
    $this->SetXY($setx10);
            }
          }


          
    //Page footer
          
    function Footer()
          {
            
    $this->SetXY(20, -15);
            
    $this->SetFont('Times','',8);
            
    $this->Cell(0,10,"Seite ".$this->PageNo()." - Stand: ".date("d.m.Y"),0,0,'C');
          }
        }


        
    //Instanciation of inherited class
        
    $pdf=new PDF('L','mm','A5');
        
    $pdf->SetLeftMargin(22);
        
    $pdf->SetTopMargin(6);
        
    $pdf->SetAuthor($pdf_autor);
        
    $pdf->SetTitle($pdf_titel);
        
    $pdf->SetCreator($pdf_creator);
        
    $pdf->SetSubject($pdf_subject);
        
    $pdf->SetKeywords($pdf_keywords);

        
    $pdf->AliasNbPages();

        
    $pdf->AddPage();
        
    $pdf->Cell(40,10,'Hello World !',1);

        
    $sql "SELECT spalte1, spalte2 FROM 'tabelle'";
        
    $result mysql_query($sql) or die ("Fehler: <br />" mysql_error());

        
    $pdf->SetFont('''''10');
        while(
    $zeile=mysql_fetch_assoc($result))
        {
          
    $pdf->Cell(43,10,$zeile['spalte1'],0,0);
          
    $pdf->Cell(43,10,$zeile['spalte2'],0,1);
        }
        
    $pdf->Output("pdf_".date('Y_m_d').".pdf",'D');
    ?>
    Nähere Infos zu der Funktion Cell() die in der Klasse definiert wurde bekommt man direkt unter www.fpdf.de
    Dort werden auch die Oarameter erkärt.


    Solltet Ihr Fragen zu dem Tutorial haben, so schreibt bitte einen Beitrag im PHP-Forum mit einem Verweis auf dieses Tutorial. Und erkundigt euch unter www.fpdf.de - dies hier sollte nur Appetit auf mehr machen!
    Danke.

    Ich hoffe, dass ich Euch hier etwas weiterhelfen konnte.


    Grüße Jann Hendrik


    // edit Kritikpunkte geändert.
  • Neue Blog-Einträge

    Adventure-PHP-Framework 1.12 erschienen

    Ich bin bisher nicht dazu gekommen - und wollte eigentlich die beiden links nennen: :arrow: http://www.golem.de/1008/77097.html :arrow:...

    20.08.2010 16:09

    Britische Regierung hält am IE6 fest

    Man könnte auch sagen "Tot erhoffte leben länger" :arrow: http://www.golem.de/1008/77035.html Leider sind halt in vielen Unternehmen speziell an den IE angepasste Programme im Einsatz, die es...

    20.08.2010 16:12

    Hosting-Dienst GitHub erreicht Millionen-Marke

    Während ich persönlich noch immer gerne SVN einsetze, ist git gerade voll im Trend. GitHub hatte die Tage zu vermelden, dass es mehr als eine Million Softwareprojekte "unter seinem Dach" hat....

    20.08.2010 16:15

    Screenshot unter Windows vom aktiven Fenster erstellen

    Der Trend, nicht nur einen Bildschirm bei der Arbeit am PC zu verwenden ist imho vorhanden. Wer - wie ich - gerne zwischendurch einen screenshot macht, der dürfte sich ggf. manches Mal geärgert...

    20.08.2010 16:20

    ListView-Spalten Automatisch ausrichten

    Listviews begegnen uns eigentlich jeden Tag aufs neue bei der täglichen Arbeit. Genauso oft nervt es, wenn man z.b. im Explorer Spalten verschieben muss, um einen Dateinamen einer Datei vollständig...

    24.08.2010 13:10
  • Neue Beiträge

    Sekundentakt

    Hi,

    ich weiß nicht genau, wie Deine Subselects aussehen. Aber falls die sich so ähnlich formulieren lassen:

    Code:
    SELECT something
    

    CONCAT_WS mit LEFT JOIN

    Sekundentakt 01.09.2010 15:30 Gehe zum letzten Beitrag
    DasMööp

    *ohje ... Antwort: Subselect *rolleye, damit fällt dann der JOIN weg.

    CONCAT_WS mit LEFT JOIN

    DasMööp 31.08.2010 13:29 Gehe zum letzten Beitrag
    DasMööp

    Hallo,

    bei einer Abfrage von zwei Tabellen ist in einer in zwei Spalten je die ID der einen hinterlegt und diese brauche ich in der CONCAT.

    CONCAT_WS mit LEFT JOIN

    DasMööp 31.08.2010 12:17 Gehe zum letzten Beitrag
    floppy

    Hallo DEVWinC, Hallo Spezialisten,

    ich stehe zur Zeit auf dem gleichen Problem, bei mir gibts beim BartPE (XP) nur einen BlueScreen nach

    [Booten] ISO-Images mit Bootloader starten & BartPE

    floppy 31.08.2010 10:48 Gehe zum letzten Beitrag

Impressum · Tutorials · Nutzungsbedingungen · thematisch sortierte Linklisten · Spendenaufruf · Team · Partnerprojekte

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48