Neue PDF fast ohne Inhalt geht nicht ???

Diskussionen und Austausch über die von FPDF bereitgestellten Methoden, Problemen bei der Anwendung etc.
thommy1972de
Benutzer
Beiträge: 3
Registriert: So 31. Jan 2016, 21:01

Neue PDF fast ohne Inhalt geht nicht ???

Beitragvon thommy1972de » Do 26. Mai 2016, 08:49

Ich habe mehrere PDF Formulare auf meiner Homepage. Die einen gehen einwandfrei nur eine will irgendwie nicht mehr.
Ich habe nun Testweise mal alles entfernt und nur

Code: Alles auswählen

<?
include('fpdf/fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>


und bekomme den Fehler:
Fatal error: Uncaught exception 'Exception' with message 'FPDF error: Some data has already been output, can't send PDF file

Woran kann das nun liegen ??

thommy1972de
Benutzer
Beiträge: 3
Registriert: So 31. Jan 2016, 21:01

Re: Neue PDF fast ohne Inhalt geht nicht ???

Beitragvon thommy1972de » Do 26. Mai 2016, 09:30

Es ist seltsam.. Wenn ich diesen FUNKTIONIERENDEN ! Code:

Code: Alles auswählen

<?php
login_check($mysqli);

error_reporting(-1);
ini_set('display_errors', true);



require('fpdf/fpdf.php');


define('EURO',chr(128));




class myPDF extends FPDF
 {


 var $angle=0;

function WordWrap(&$text, $maxwidth)
{
    $text = trim($text);
    if ($text==='')
        return 0;
    $space = $this->GetStringWidth(' ');
    $lines = explode("\n", $text);
    $text = '';
    $count = 0;

    foreach ($lines as $line)
    {
        $words = preg_split('/ +/', $line);
        $width = 0;

        foreach ($words as $word)
        {
            $wordwidth = $this->GetStringWidth($word);
            if ($wordwidth > $maxwidth)
            {
                // Word is too long, we cut it
                for($i=0; $i<strlen($word); $i++)
                {
                    $wordwidth = $this->GetStringWidth(substr($word, $i, 1));
                    if($width + $wordwidth <= $maxwidth)
                    {
                        $width += $wordwidth;
                        $text .= substr($word, $i, 1);
                    }
                    else
                    {
                        $width = $wordwidth;
                        $text = rtrim($text)."\n".substr($word, $i, 1);
                        $count++;
                    }
                }
            }
            elseif($width + $wordwidth <= $maxwidth)
            {
                $width += $wordwidth + $space;
                $text .= $word.' ';
            }
            else
            {
                $width = $wordwidth + $space;
                $text = rtrim($text)."\n".$word.' ';
                $count++;
            }
        }
        $text = rtrim($text)."\n";
        $count++;
    }
    $text = rtrim($text);
    return $count;
}

function Code39($xpos, $ypos, $code, $baseline=0.5, $height=5){

    $wide = $baseline;
    $narrow = $baseline / 3 ;
    $gap = $narrow;

    $barChar['0'] = 'nnnwwnwnn';
    $barChar['1'] = 'wnnwnnnnw';
    $barChar['2'] = 'nnwwnnnnw';
    $barChar['3'] = 'wnwwnnnnn';
    $barChar['4'] = 'nnnwwnnnw';
    $barChar['5'] = 'wnnwwnnnn';
    $barChar['6'] = 'nnwwwnnnn';
    $barChar['7'] = 'nnnwnnwnw';
    $barChar['8'] = 'wnnwnnwnn';
    $barChar['9'] = 'nnwwnnwnn';
    $barChar['A'] = 'wnnnnwnnw';
    $barChar['B'] = 'nnwnnwnnw';
    $barChar['C'] = 'wnwnnwnnn';
    $barChar['D'] = 'nnnnwwnnw';
    $barChar['E'] = 'wnnnwwnnn';
    $barChar['F'] = 'nnwnwwnnn';
    $barChar['G'] = 'nnnnnwwnw';
    $barChar['H'] = 'wnnnnwwnn';
    $barChar['I'] = 'nnwnnwwnn';
    $barChar['J'] = 'nnnnwwwnn';
    $barChar['K'] = 'wnnnnnnww';
    $barChar['L'] = 'nnwnnnnww';
    $barChar['M'] = 'wnwnnnnwn';
    $barChar['N'] = 'nnnnwnnww';
    $barChar['O'] = 'wnnnwnnwn';
    $barChar['P'] = 'nnwnwnnwn';
    $barChar['Q'] = 'nnnnnnwww';
    $barChar['R'] = 'wnnnnnwwn';
    $barChar['S'] = 'nnwnnnwwn';
    $barChar['T'] = 'nnnnwnwwn';
    $barChar['U'] = 'wwnnnnnnw';
    $barChar['V'] = 'nwwnnnnnw';
    $barChar['W'] = 'wwwnnnnnn';
    $barChar['X'] = 'nwnnwnnnw';
    $barChar['Y'] = 'wwnnwnnnn';
    $barChar['Z'] = 'nwwnwnnnn';
    $barChar['-'] = 'nwnnnnwnw';
    $barChar['.'] = 'wwnnnnwnn';
    $barChar[' '] = 'nwwnnnwnn';
    $barChar['*'] = 'nwnnwnwnn';
    $barChar['$'] = 'nwnwnwnnn';
    $barChar['/'] = 'nwnwnnnwn';
    $barChar['+'] = 'nwnnnwnwn';
    $barChar['%'] = 'nnnwnwnwn';

    $this->SetFont('Arial', '', 10);
    //$this->Text($xpos, $ypos + $height + 4, $code);
    $this->SetFillColor(0);

    $code = '*'.strtoupper($code).'*';
    for($i=0; $i<strlen($code); $i++){
        $char = $code[$i];
        if(!isset($barChar[$char])){
            $this->Error('Invalid character in barcode: '.$char);
        }
        $seq = $barChar[$char];
        for($bar=0; $bar<9; $bar++){
            if($seq[$bar] == 'n'){
                $lineWidth = $narrow;
            }else{
                $lineWidth = $wide;
            }
            if($bar % 2 == 0){
                $this->Rect($xpos, $ypos, $lineWidth, $height, 'F');
            }
            $xpos += $lineWidth;
        }
        $xpos += $gap;
        }
    }

function Rotate($angle,$x=-1,$y=-1)
{
   if($x==-1)
      $x=$this->x;
   if($y==-1)
      $y=$this->y;
   if($this->angle!=0)
      $this->_out('Q');
   $this->angle=$angle;
   if($angle!=0)
   {
      $angle*=M_PI/180;
      $c=cos($angle);
      $s=sin($angle);
      $cx=$x*$this->k;
      $cy=($this->h-$y)*$this->k;
      $this->_out(sprintf('q %.5F %.5F %.5F %.5F %.2F %.2F cm 1 0 0 1 %.2F %.2F cm',$c,$s,-$s,$c,$cx,$cy,-$cx,-$cy));
   }
}

function _endpage()
{
   if($this->angle!=0)
   {
      $this->angle=0;
      $this->_out('Q');
   }
   parent::_endpage();
}
       // Überlagerung der Header() Methode
   function Header()
   {
        $this->SetFont('Good-times-rg', '', 20);
        $this->Cell(0, 10, 'Computerservice Blasius Thomas', 'T', 1,'C');
        $this->SetFont('Helvetica','',8);
        $this->Cell(0, 5, utf8_decode('|:| Wo andere aufgeben, fangen wir erst an |:|'), 0, 1, 'C');
        $this->Cell(0, 4, utf8_decode('Europaring 47, 66482 Zweibrücken, Telefon: 06332 - 896 31 31, Web: www.ZWPC.de'), 'B', 1, 'C');
        if($_GET["kopie"] == '1') {
            $this->SetFont('Good-times-rg','',50);
            $this->SetTextColor(255,192,203);
            $this->RotatedText(85,90,'Kopie',20);
            $this->SetFont('Helvetica','',8);
            }

   }

   function RotatedText($x, $y, $txt, $angle)
    {
    //Text rotated around its origin
    $this->Rotate($angle,$x,$y);
    $this->Text($x,$y,$txt);
    $this->Rotate(0);
    }

   // Überlagerung der Footer() Methode
   function Footer()
   {
     // Über dem unteren Seitenrand positionieren
     $this->SetY(-28);
     // Schriftart festlegen

     $this->SetFont('Arial','',7);
     /* Linie */
    $this->Line(0, 278, 240, 278);
     // Zentrierte Ausgabe der Seitenzahl
     $this->SetXY(5,-18);
     $this->MultiCell(67,3,utf8_decode("Zahlungskonten:\nPayPal: paypal@zwpc.de\nPostbank Ludwigshafen\nIBAN:DE80545100670393140671\nBIC: PBNKDEFF"), 0, 'T');
     $this->SetXY(70,-18);
     $this->MultiCell(72,4,utf8_decode("Alle Preise sind Endpreise. Keine Anrechnung von Umsatzsteuer gemäß Kleinunternehmerregelung\n(§ 19 Abs. 1 UStG).\nSt.Nr: 46/15/30386, St.Ident: 79538720410"), 'LR', 'C');
     $this->SetXY(154,-18);
     $this->MultiCell(51,4,utf8_decode("Unsere aktuellen Servicezeiten entnehmen Sie bitte unserer Internetseite unter:\nwww.zwpc.de, www.zw-pc.de, \nwww.computerservice-zweibrücken.de"), 0, 'R');

   }



 }




$renr = $_GET["renr"];
$renr_barcode = substr($renr, 9,12);

$sql = "SELECT * FROM rechnungen WHERE renr = '$renr'";
if ($result = $mysqli->query($sql)) {
    while ($row = $result->fetch_assoc()) {
    $redatum = $row["datumneu"];
    $kdnr = $row["kdnr"];
    $bez = $row["bez"];
    $bez_datum = $row["bezdatumneu"];
    $zahlungsart = utf8_encode($row["zahlungsart"]);

   $zahlungshinweis = "";
    if($zahlungsart == "PayPal") { $zahlungshinweis = "\nZahlung bitte an unsere PayPal-Email: paypal@zwpc.de"; }
    elseif($zahlungsart == "Überweisung") { $zahlungshinweis = "\n\nZahlungen bitte an:\nPostbank Ludwigshafen\nIBAN:DE80545100670393140671\nBIC: PBNKDEFF\n"; }
    elseif($zahlungsart == "Vorkasse") { $zahlungshinweis = "\n\nZahlungen bitte an:\nPostbank Ludwigshafen\nIBAN:DE80545100670393140671\nBIC: PBNKDEFF\n"; }
   
   $lieferart = utf8_encode($row["lieferart"]);
    $enddatum = date('d.m.Y', strtotime("+7 days"));
}
}

$sqlkd = "SELECT * FROM kunden WHERE kdnr = '$kdnr'";
if ($result2 = $mysqli->query($sqlkd)) {
    while ($rowkd = $result2->fetch_assoc()) {
    $anrede = $rowkd["anrede"];
    $firma = $rowkd["firma"];
    $name = $rowkd["nachname"]." ".$rowkd["vorname"];
    $strasse = $rowkd["strasse"]." ".$rowkd["hsnr"];
    $ort = $rowkd["plz"]." ".$rowkd["ort"];
    $kd_telefon = $rowkd["telefon"];
    $kd_mobil = $rowkd["mobil"];
    $kd_email = $rowkd["email"];

}
}



$pdf = new myPDF();
$pdf->AddFont('Good-times-rg', '', 'Good-times-rg.php');

$pdf->AddPage();

     // Header generieren
        $pdf->SetXY(10, 98);
        $pdf->MultiCell( 207, 4, utf8_decode('Vielen Dank für Ihren Auftrag. Wir berechnen Ihnen folgende Produkte oder Leistungen:'), 0, 'L', 0);

        $pdf->SetXY(18, 105);
        $pdf->MultiCell( 7, 4, 'Anz', 0, 'C', 0);

        $pdf->SetXY(0, 105);
        $pdf->MultiCell( 87, 4, 'Produkt oder Service', 0, 'C', 0);

        $pdf->SetXY(150, 105);
        $pdf->MultiCell( 30, 4, 'E-Preis', 0, 'C', 0);

        $pdf->SetXY(165, 105);
        $pdf->MultiCell( 30, 4, 'Gesamt', 0, 'R', 0);

// Kundendaten

$pdf->SetFont('Helvetica','',8);
$pdf->SetXY(120,40);
$pdf->Cell(0, 4, 'RE-Nr: '.$_GET["renr"], 0, 1, 'R');
$pdf->SetX(130);
$pdf->Cell(0, 4, 'RE-Datum: '. $redatum, 0, 1, 'R');
$pdf->SetX(140);
$pdf->Cell(0, 4, 'KD-Telefon: '.$kd_telefon, 0, 1, 'R');
$pdf->SetX(140);
$pdf->Cell(0, 4, 'KD-Mobil: '.$kd_mobil, 0, 1, 'R');
$pdf->SetX(140);
$pdf->Cell(0, 4, 'KD-Email: '.$kd_email, 0, 1, 'R');


$pdf->Code39(161, 73, $renr_barcode, 1, 5);


$pdf->SetFont('Helvetica','',6);
$pdf->SetXY(25,45);
$pdf->Cell(67, 4, utf8_decode('Computerservice Blasius Thomas, Europaring 47, 66482 Zweibrücken'), 'B', 1);

$pdf->SetY(50);
$pdf->SetX(25);
$pdf->SetFont('Helvetica','B',9);
$pdf->Cell(10, 4, $anrede, 0, 1);
if(!empty($firma)) {
$pdf->SetX(25);
$pdf->Cell(10, 4, $firma, 0, 1);
}
$pdf->SetX(25);
$pdf->Cell(10, 4, $name, 0, 1);
$pdf->SetX(25);
$pdf->Cell(10, 4, $strasse, 0, 1);
$pdf->SetX(25);
$pdf->Cell(10, 4, $ort, 0, 1);

if(empty($_GET["was"])) {$_GET["was"] = "Rechnung"; }
// Was wird gedruckt ?
$pdf->SetFont('Good-times-rg', '', 20);
$pdf->SetXY(151,85);
$pdf->Cell(50, 10, $_GET["was"], 0, 1,'R');

$pdf->SetXY(151,95);
$pdf->SetFont('Helvetica','',8);
$pdf->Cell(50, 10, 'Druckdatum: '.date("d.m.Y - H:i", time()). ' Uhr', 0, 1,'R');
$pdf->Line(10, 104, 200, 104);

$pdf->SetFont('Helvetica','',9);
// Artikel einfügen
$string = "";
$i = 0;
$pdf->SetY(100);

$newY = $pdf->getY();
$newX = $pdf->getX();
$total = 0;

echo "<table width='95%' border='1'>";


/* Artikel einfügen START */
$sql3 = "SELECT * FROM reart WHERE renr = '$renr'";
if ($result3 = $mysqli->query($sql3)) {
    $anzahl_art = $result3->num_rows;
    while ($rowart = $result3->fetch_assoc()) {
    $i++;
        $gesamt = $rowart["anz"] * $rowart["epreis"];
        $total = $total+$gesamt;

 $pdf->SetXY(20, $newY+12);
 $pdf->MultiCell( 5, 4, $rowart["anz"] , 0, 'C', 0);
 $pdf->SetXY(140, $newY+11);
 $pdf->MultiCell( 30, 4, $rowart["epreis"]." ".EURO , 0, 'R', 0);
 $pdf->SetXY(165, $newY+11);
 $pdf->MultiCell( 30, 4, number_format( $gesamt,2 )." ".EURO , 0, 'R', 0);
// TEXT //
$pdf->SetXY(30, $newY+12);
 // Zeilenanzahl errechnen $nb
$nb=$pdf->WordWrap($rowart["text"], 120);
/*Reihe ausgeben*/
$pdf->MultiCell( 120, 4, $rowart["text"] , 0, 'L', 0);
/*Linie zeichnen*/
$pdf->Line(10, $newY+9, 200, $newY+9);
/* Neuen Abstand berechnen newY+zeilenanzahl*6+3 =Abstand */
$newY = $newY+$nb*6+3;

if($newY >= 220) { $pdf->AddPage(); $newY=20; }


}
}

$new2 = $pdf->GetY();
$pdf->Line(10, $newY+13, 200, $newY+13);
$pdf->SetXY(125, $newY+15);
$pdf->SetFont('Helvetica','I',10);
$pdf->MultiCell( 70, 4, 'Gesamtpreis: '.number_format( $total,2 )." ".EURO , 0, 'R', 0);


/* Artikel einfügen ENDE  */




/* Zahlungsmodalitäten  */
$newY2 = $pdf->getY();
$newX2 = $pdf->getX();
$pdf->SetXY(10, $newY+17);
$pdf->SetFont('Helvetica','',9);

if($bez == '1') {
     $pdf->MultiCell( 190, 4, utf8_decode("Der Rechnungsbetrag wurde am ".$bez_datum." beglichen.\n\nLieferart: ".$lieferart."\nZahlungsart: ".$zahlungsart."\nLieferdatum entspricht Rechnungsdatum\n\nIch bedanke mich für Ihr Vertrauen und würde mich freuen,\nSie auch in Zukunft beraten zu dürfen.") , 0, 'L', 0);
} else  {
     $pdf->MultiCell( 100, 4, utf8_decode("Zahlbar bis spätestens: ".$enddatum.".\n\nZahlungsart: ".$zahlungsart." ".$zahlungshinweis."\nLieferart: ".$lieferart."\nLieferdatum entspricht Rechnungsdatum") , 0, 'L', 0);
     }

$neuY = $pdf->GetY();
if($bez == '1' AND $zahlungsart = 'Überweisung') { $plus = "-30"; }
if($bez == '1' AND $zahlungsart = 'Vorkasse') { $plus = "-30"; }
if($bez == '1' AND $zahlungsart = 'PayPal') { $plus = "-20"; }
if($bez == '0' AND $zahlungsart = 'Überweisung') { $plus = "-30"; }
if($bez == '0' AND $zahlungsart = 'PayPal') { $plus = "-10"; }

//$pdf->Image('images/paypal-text2.png', 165, $neuY+$plus, 30, 18, 'Png');

// AUSGABE //


ob_clean();
flush();

$re_neu2 = str_replace("|", "-", $_GET["renr"]);
$pdf->Output('PDF-Dateien/rechnung/Rechnung-'.$re_neu2.'.pdf','F');
$pdf->Output();



?>



kopiere und in die re_pdf.php einfüge geht er auf einmal nicht mehr ???

thommy1972de
Benutzer
Beiträge: 3
Registriert: So 31. Jan 2016, 21:01

Re: Neue PDF fast ohne Inhalt geht nicht ???

Beitragvon thommy1972de » Do 26. Mai 2016, 12:46

Ich habe nun wirklich alles Versucht. Sogar FPDF neu heruntergeladen, vom Server gelöscht, Neu aufgespielt - Nix.

Code: Alles auswählen

Fatal error: Uncaught exception 'Exception' with message 'FPDF error: Some data has already been output, can't send PDF file (output started at /var/www/k103238web/xxxxx/index.php:91)' in /var/www/k103238web/xxxxx/fpdf.php:271 Stack trace: #0
/var/www/k103238web/xxxxx/fpdf/fpdf.php(1052): FPDF->Error('Some data has a...') #1 /var/www/k103238web/xxxx/fpdf/fpdf.php(999): FPDF->_checkoutput() #2
/var/www/k103238web/xxxxx/auf_pdf.php(9): FPDF->Output() #3 /var/www/k103238web/htdocs/xxxxx/index.php(95): include('/var/www/k10323...') #4 {main} thrown in /var/www/k103238web/xxxxx/fpdf.php on line 271

Spiro
Benutzer
Beiträge: 10
Registriert: Mi 2. Nov 2016, 09:07

Re: Neue PDF fast ohne Inhalt geht nicht ???

Beitragvon Spiro » Mo 21. Nov 2016, 08:19

Hast du eine Lösung gefunden?

Habe das gleiche Problem.


Zurück zu „Programmierung“

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 4 Gäste