FPDF keine Ausgabe

Loveboat

Erfahrenes Mitglied
Hallo Leute,

bin ein wenig am verzweifeln mit FPDF, vielleicht kann mir jemand helfen.

Mein aktueller Code:


PHP:
function createPDF($myData)
    {
    class PDF extends FPDF
        {
        //Page header
        function Header()
            {
            $this->SetLeftMargin(0);
            $this->SetTopMargin(0);
            $this->SetLineWidth(0.1);
            //Logo
            $this->Image('background.jpg',0,0,207);
            //Abstand zum oberen Rand            
            $this->Cell(0,33,'',0,1);
            //Anschrift
            $this->Cell(30,6.5);
            $this->SetFont('Arial','U',6.5);
            $this->SetTextColor(0, 0, 0);
            $this->Cell(0,6.5,'Nur ein Test',0,1);
            }

        function ContentTable()
            {
            $this->SetLeftMargin(0);
            $this->SetTopMargin(0);
            $this->SetFont('Arial','B',10);
            $this->SetTextColor(255, 255, 0); 
            $this->Cell(400,10,'Dies ist ein einfacher Text',0,1);
            }
        }


        function ContentTable()
            {
            $this->SetFont('Arial','B',10);
            $this->SetTextColor(255, 255, 0); 
            $this->Cell(400,10,'Dies ist ein einfacher Text',0,1);
            }
        }

    for($kn=0;$kn<count($myData);$kn++)
        {
        $pdf=new PDF();
        $pdf->SetTitle('Nur ein Titel');
        $pdf->SetAuthor('Nur ein Autor');
        $pdf->SetSubject('Nur ein Subject');
        $pdf->ContentTable();
        $file = $myData[$kn]["Kd. Nr."].'.pdf';
        $pdf->Output($file);
        }
    }

Die PDF-Dateien werden auch alle mit dem Inhalt vom Header() erstellt, allerdings ohne dem Inhalt von ContentTable().
Wenn ich den Header weglasse erhalte ich nur eine weiße Seite, ohne Inhalt.

Weiß jemand was ich hier falsch mache und warum mir der Inhalt von ContentTable() nicht angezeigt wird?

Danke und Gruß
Loveboat
 
Hi,

ich vermute, es liegt daran, das du zwei Methoden mit dem Namen ContentTable() verwendest. Eine der beiden Methoden ist allerdings außerhalb des Scopes der Klasse. Ich weiß nicht, welche der beiden Methoden letztendlich verwendet werden soll. Vielleicht solltest du deine Einrückung mal korrigieren, dann sieht man sowas sofort:

PHP:
class PDF extends FPDF
{
    //Page header
    function Header()
    {
        $this->SetLeftMargin(0);
        $this->SetTopMargin(0);
        $this->SetLineWidth(0.1);
        //Logo
        $this->Image('background.jpg',0,0,207);
        //Abstand zum oberen Rand            
        $this->Cell(0,33,'',0,1);
        //Anschrift
        $this->Cell(30,6.5);
        $this->SetFont('Arial','U',6.5);
        $this->SetTextColor(0, 0, 0);
        $this->Cell(0,6.5,'Nur ein Test',0,1);
    }

    function ContentTable()
    {
        $this->SetLeftMargin(0);
        $this->SetTopMargin(0);
        $this->SetFont('Arial','B',10);
        $this->SetTextColor(255, 255, 0); 
        $this->Cell(400,10,'Dies ist ein einfacher Text',0,1);
    }
}

function createPDF($myData)
{
    for($kn=0;$kn<count($myData);$kn++)
    {
        $pdf=new PDF();
        $pdf->SetTitle('Nur ein Titel');
        $pdf->SetAuthor('Nur ein Autor');
        $pdf->SetSubject('Nur ein Subject');
        $pdf->ContentTable();
        $file = $myData[$kn]["Kd. Nr."].'.pdf';
        $pdf->Output($file);
    }
}

Außerdem sollte man Klassen nicht innerhalb einer Funktion definieren. Daher der etwas größere Umbau.
 
Hi,

danke für die schnelle Antwort. Sieht danach aus als ob ich hier ein Copy/Paste-Fehler verursacht habe.

Habe das also noch einmal überprüft und nachgebessert:

PHP:
define('FPDF_FONTPATH','../pdf/font/');
require('../pdf/fpdf.php');

class PDF extends FPDF
	{
        //Page header
        function Header()
		{
		$this->SetLeftMargin(0);
		$this->SetTopMargin(0);
		$this->SetLineWidth(0.1);
		//Logo
		$this->Image('background.jpg',0,0,207);
		//Abstabd zum Rand            
		$this->Cell(0,33,'',0,1);
		//Anschrift
		$this->Cell(30,6.5);
		$this->SetFont('Arial','U',6.5);
		$this->SetTextColor(0, 0, 0);
		$this->Cell(0,6.5,'Autohaus Wallenwein GmbH - Postfach 32 41 - 55397 Bingen',0,1);
		}

	function ContentTable()
		{
		$this->SetLeftMargin(0);
		$this->SetTopMargin(0);
		$this->SetFont('Arial','B',10);
		$this->SetTextColor(255, 255, 0); 
		$this->Cell(400,10,'Dies ist ein einfacher Text',0,1);
		}
	}



$checkRows2 = mysql_query("SELECT * FROM `BMW_temptuev` WHERE `E-Mail` IS NOT NULL ORDER BY `Name`");
while($myTuev = mysql_fetch_array($checkRows2))
	{
	if(!isset($myTuev["Name"]))
		$name = "";
	else
		$name = $myTuev["Name"];

	if(!isset($myTuev["Vorname/Anspr."]))
		$name .= "";
	elseif($myTuev["Vorname/Anspr."] != "")
		$name .= ', '.$myTuev["Vorname/Anspr."];

	echo '
            <div class="inputline3 height20">
                <div class="line16">'.$myTuev["Kd. Nr."].'</div>
                <div class="line15">'.$name.'</div>
                <div class="line16">'.$myTuev["amtl. Kennz."].'</div>
                <div class="line17"><a href="'.$myTuev["Kd. Nr."].'.pdf" target="_blank"><img src="pdf.jpg" alt="Brief" height="15"></a></div>
            </div>
';

	$pdf=new PDF();
	$pdf->ContentTable();
	$file = $myTuev["Kd. Nr."].'.pdf';
	$pdf->Output($file);
	}

Aber nach wie vor wird der Inhalt von ContentTable() nicht angezeigt.

Noch eine Idee?

Danke und Gruß
Loveboat
 
Zurück