tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von tombe
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1087
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    smyle smyle ist offline Mitglied Gold
    Registriert seit
    Jun 2008
    Beiträge
    217
    Hallo, ich habe ein kleines Problem. ich möchte eine bestimmte, mit HTML und PHP erstellte Tabelle in einem PDF ausgeben.

    Momentan habe ich folgender Code:
    PHP-Code:
    require('lib/fpdf.php');

    $inhalt "<table align='center' border='1'>
                  <tr align='center'>
                    <td bordercolor='#000000' bgcolor='#009900' width='525' height='175'> 
    $text$text11 Inhalt $image</td>
                      </tr>
                </table>"
    ;

    $pdf=new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial','B',16);
    $pdf->Cell(40,10$inhalt);
    $pdf->Output(); 
    Jedoch wird meine Tabelle als Text angezeigt und nicht als Code. Weis jemand wie man das macht?
     

  2. #2
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Hier http://www.fpdf.de/tutorials/5/ ist eine Beschreibung auf der Seite von FPDF wo gezeigt wird wie man Tabellen erstellt. So wie du das machst wird ja der HTML "Code" nicht als solcher angesehen sondern wie du selber schreibst als reiner Text.
    smyle bedankt sich. 
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  3. #3
    smyle smyle ist offline Mitglied Gold
    Registriert seit
    Jun 2008
    Beiträge
    217
    Hmm.. Ok danke, ich werde es mal mit dieser Seiter versuchen. Bei Probleme werde ich mich ansonsten melden.
    Grüsse Smyle
     

  4. #4
    smyle smyle ist offline Mitglied Gold
    Registriert seit
    Jun 2008
    Beiträge
    217
    Also, ich habe mal versucht den Code zu verstehen und ihn für mich umzuschreiben.
    Leider konnte ich diesen Code, mit meinen Wenigen PHP- und englisch- Kenntnisse nicht verstehen.
    Kannst du oder jemand anders mir da helfen?

    PHP-Code:
    define('FPDF_FontPATH','lib/font/');
    require(
    'lib/fpdf.php');

    class 
    PDF extends FPDF
    {
        
    //Load data
        
    function LoadData($file)                        //Benötige ich eigentlich garnicht, da ich keine Datei habe, sondernd variabeln
        
    {
            
    //Read file lines
            
    $lines=file($file);
            
    $data=array();
            foreach(
    $lines as $line)
                
    $data[]=explode(';',chop($line));
            return 
    $data;
        }

        
    //Simple table
        
    function BasicTable($data)
        {
            
    //Data
            
    foreach($data as $row)
            {
                foreach(
    $row as $col)
                    
    $this->Cell(40,6,$col,1);
                
    $this->Ln();
            }
        }
        
    //Better table
        
    function ImprovedTable($data)
        {
            
    //Column widths
            
    $w=array(40,35,40,45);                            //Das sind warscheinlich nicht Pixel? wie muss ich die Breite beiner Tabelle hier angeben?
            
            
            //Data
            
    foreach($data as $row)                            //?
            
    {
                
    $this->Cell($w[0],6,$row[0],'LR');
                
    $this->Cell($w[1],6,$row[1],'LR');
                
    $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R');
                
    $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R');
                
    $this->Ln();
            }
            
            
    //Closure line
            
    $this->Cell(array_sum($w),0,'','T');
        }

        
    //Colored table
        
    function FancyTable($data)
        {
            
    //Colors, line width and bold font
            
    $this->SetFillColor(255,0,0);
            
    $this->SetTextColor(255);
            
    $this->SetDrawColor(128,0,0);                                //Wie muss ich die höhe und die Länge angeben (Für was steht .3, denn ich hatte es zu .6 umgeschrieben und es ist nichts passiert)?
            
    $this->SetLineWidth(.3);
            
    $this->SetFont('','B');

            
            
    //Color and font restoration                                //Da die Tabelle weiss ist, kann man das so lassen
            
    $this->SetFillColor(224,235,255);                    
            
    $this->SetTextColor(0);
            
    $this->SetFont('');
            
            
    //Data                                                        //?
            
    $fill=0;
            foreach(
    $data as $row)
            {
                
    $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
                
    $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
                
    $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R',$fill);
                
    $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R',$fill);
                
    $this->Ln();
                
    $fill=!$fill;
            }
            
    //$this->Cell(array_sum($w),0,'','T');
        
    }

    }

    $LatName "Tuber aestivum";                //Bold
    $FrName "Truffe d'été";                    //Bold
    $DeName "Sommer Trüffel";                    //Bold
    $nr="C COUR 43";                            //Normal
    $logo "<img src='Bilder/Test.jpg'>";        //Bei manchen kommt das logo oben Rechts (Wie im Anhang)
    $bg "<img src='Bilder/Hintergrundbild'>"//Bei manchen kommt ein Hintergrundbild für die Tabelle verwendet 

    $pdf=new PDF();


    //Data loading
    $data=$pdf->LoadData('Data.txt');            //Hier muss ich keine Datei lade (Die funktion wird auch nicht benötigt) jedoch muss ich die oberen Variabeln als inhalt anzeigen /erkennen lassen.

    $pdf->SetFont('Arial','',14);
    $pdf->AddPage();
    $pdf->BasicTable($data);            //header wird nicht benötigt
    $pdf->AddPage();
    $pdf->ImprovedTable($data);            //header wird nicht benötigt
    $pdf->AddPage();
    $pdf->FancyTable($data);            //header wird nicht benötigt
    $pdf->Output(); 
    Ich habe Zu den verschiedenen Codeteilien Kommentare geschreiben.
    Wichtig ist, die Variabeln $LatName, $FrName, $DeName, $nr, $logo und $bg sind die die in der Tabelle angezeigt werden müssen.
    Ich habe euch als Beispiel eine solche PDF Datei hochgeladen.

    Vielen Dank im voraus für die Hilfe. Ich weis das ist mühsam und voralemm bei einem solchen schwirigen Code.

    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken HTML Tabelle in PDF ausgeben-pdf.pdf  
    Geändert von smyle (10.03.10 um 10:51 Uhr)
     

  5. #5
    smyle smyle ist offline Mitglied Gold
    Registriert seit
    Jun 2008
    Beiträge
    217
    Hallo ich habe eine Kurze Frage zu FPDF.

    -Und zwar lese ich aus einer DB ein bestimmter Text aus.
    Mit dem Befehl "MultiCell" kann ich den Text ein dem Richtigen Ort anzeigen lassen.
    Da der Text für die Zelle zu lange ist, muss ich "MultiCell" verwenden, da dieser Befehl automatisch einen Zeilenumbruch erstellt.
    Nun habe ich jedoch nach dem MultiCell Befehl noch weitere Zellen.
    Diese werde leider auf einer zeuen Zeile angezeigt und nicht auf der selben wie der geladene Text aus der DB.

    Wie kann ich das Problem lösen?

    Hier der Codebereich:
    PHP-Code:

                    $this
    ->Ln(4);
                    
    $this->SetFont('Arial','',9);
                    
    $this->Cell($w[0],$h[1],"",0,0,'L',0,0);
                    
                    
    $this->SetFont('Arial','',6);
                    
    $this->MultiCell$w[3],$h[0], "$row->Text"'0''L'0); //HIER DEN MULTICELL BEREICH

                    
    $this->SetFont('ZapfDingbats');
                    
    $this->Cell($w[0],$h[1], chr(111),0,0,'C',0,0);   //UND HIER DEN BEREICH MIT DEN WEITEREN ZELLEN
                    
    $this->Cell($w[0],$h[1], chr(111),0,0,'C',0,0);
                    
    $this->Cell($w[0],$h[1], chr(111),0,0,'C',0,0);
                    
    $this->Cell($w[0],$h[1], chr(111),0,0,'C',0,0);
                    
    $this->Cell($w[0],$h[1], chr(111),0,0,'C',0,0);
                    
    $this->Cell($w[0],$h[1], chr(111),0,0,'C',0,0);
                    
                    
    $this->Ln(4); 

    -Dann habe ich noch eine andere kleine Frage.
    Und zwar ... wenn ich einen Text in einer Zelle habe welche 10 gross ist, wie kann ich hinterlegen das der Text im oberen Bereich der Zelle angezeigt wird?
    PHP-Code:
    $this->Cell($w[3],$h[2],"$begründung",'0',0,'C',0,0); //HIER MUSS MAN IRGENDWIE NOCH ERWÄHNEN DAS DER TEXT IN DER OBERENHÄLFTE DER ZELLE GELADEN WERDEN MUSS 
    -Und die dritte Frage lautet:
    Wie kann ich beim Cell die obere Linie gestrichelt machen. Denn Standard ist sie durchgezogen.


    Hoffe es kann mir jemand helfen und schnell eine Antwort geben.
    Vielen Dank im Voraus
    Geändert von smyle (18.06.10 um 14:36 Uhr)
     

Ähnliche Themen

  1. mysql Tabele als html Tabelle ausgeben?
    Von DJmension im Forum PHP
    Antworten: 5
    Letzter Beitrag: 13.03.08, 23:31
  2. Antworten: 1
    Letzter Beitrag: 17.07.07, 07:23
  3. Formulardaten in html-Tabelle ausgeben?
    Von Schiesti im Forum PHP
    Antworten: 15
    Letzter Beitrag: 29.04.07, 00:57
  4. Antworten: 0
    Letzter Beitrag: 08.12.06, 17:58
  5. Datensätze in HTML-Tabelle ausgeben
    Von $TîM$ im Forum PHP
    Antworten: 3
    Letzter Beitrag: 03.05.06, 11:35