Erstellen Sie Mehrere PDF-Dateien von FPDF

Was ich versuche zu tun, ist erstellen und per E-Mail mehrere PDF-Dateien mittels FPDF. Ich habe bereits alles nach E-Mail eine einzelne Datei, aber wenn ich versuchen zu kleben, und alles in eine Schleife, das Skript endet die Ausgabe nur die erste Instanz der PDF-Datei wird dann beendet, um einen leeren Bildschirm. diese läuft perfekt, wenn ich bin nur mit der Verarbeitung eines Datensatzes, jedoch, wenn Sie hinzufügen, mehrere, es läuft nur ein einziges mal. Ich kann wirklich nicht herausfinden, was zu tun ist hier ist mein code. Jede Hilfe oder Richtung, wird sehr geschätzt.

while ($data = mysql_fetch_row($query)) //under normal circumstances working properly
    {
        $clientid = $data['0'];
        if($clientid)
        {
            require("generatepdf.php"); //styles the pdf and is working properly
            $savepath = 'c:/ledgers/'.$cname.' Cash Ledger.pdf';
            $pdf->Output($savepath,'F');
            require("ledgeremail.php"); //runs query to get email address and emails the outputted file 
        }
    }

Hier ist der Kern meiner pdf-Generierung von code, die die Besonderheiten der generation ausgelassen.

<?php

require("includes/pdf/fpdf.php");


{

$pdf = new FPDF( );
$pdf->AddPage();
$pdf->SetFont('Arial','',16);

    //Run Query to get Ledger information for the $clientid variable
            //Pass information from query into the different variables throughout script



            //Print Document Title
            $pdf->Cell(0,10,$cname.' Petty Cash Ledger', 0,1,'L');
            //Print First Month Grouping
            $pdf->SetFont('Arial','',10);
            $pdf->Line($linestart,$pdf->GetY(),$lineend,$pdf->GetY());
            $pdf->Cell(10,5,$startmonth.", ".$startyear, 0,0,'L');
            $pdf->SetX(175);
            $pdf->SetFont('','B');
            $pdf->Cell(20,5,'Balance Forward: $'.$balforward, 0,1,'R');
            $pdf->SetFont('');
            //print group headers
            $pdf->SetTextColor(101,102,102);
            $pdf->Cell(30,5,'Date',0,0,'L');
            $pdf->SetX(30);
            $pdf->Cell(105,5,'Description', 0,0,'L');
            $pdf->SetX(135);
            $pdf->Cell(20,5,'Deposit', 0,0,'R');
            $pdf->SetX(155);
            $pdf->Cell(20,5,'Withdrawl', 0,0,'R');
            $pdf->SetX(175);
            $pdf->Cell(20,5,'Balance', 0,1,'R');
            $pdf->SetTextColor(0,0,0);
            $pdf->SetFillColor(255);

            while($ledger = mysql_fetch_row($ledgerqry))
            {
                if ($grey == 1) $pdf->SetFillColor(225);

                $currentmonth = date('F',strtotime($data[0]));
                if ($currentmonth != $startmonth)
                {
                    $pdf->SetFillColor(255);
                    $grey = 0;
                    $currentyear = date('Y',strtotime($data[0]));
                    //Print Month End Balance
                    $pdf->SetX(175);
                    $pdf->SetFont('','B');
                    $pdf->Cell(20,5,'Ending Balance: '.$runningbal, 0,1,'R',1);
                    $pdf->SetFont('');
                    $pdf->Line($linestart,$pdf->GetY()+2,$lineend,$pdf->GetY()+2);
                    //Print Month Grouping
                    $pdf->Cell(10,10,$currentmonth.", ".$currentyear, 0,0,'L');
                    $pdf->SetX(175);
                    $pdf->SetFont('','B');
                    $pdf->Cell(20,10,"Balance Forward: ".$runningbal, 0,1,'R');
                    $pdf->SetFont('');


                    //print group headers
                    $pdf->SetTextColor(101,102,102);
                    $pdf->Cell(30,5,'Date',0,0,'L');
                    $pdf->SetX(30);
                    $pdf->Cell(105,5,'Description', 0,0,'L');
                    $pdf->SetX(135);
                    $pdf->Cell(20,5,'Deposit', 0,0,'R');
                    $pdf->SetX(155);
                    $pdf->Cell(20,5,'Withdrawl', 0,0,'R');
                    $pdf->SetX(175);
                    $pdf->Cell(20,5,'Balance', 0,1,'R');
                    $pdf->SetTextColor(0,0,0);

                    $startmonth = $currentmonth;
                }

                //Create line Variables
                $tdate = date('m/d/Y',strtotime($ledger[0]));
                $tdescription = $ledger[2];
                if($ledger[3]==0)   $tdeposit = ""; else $tdeposit = "$".number_format($ledger[3], 2, '.', ',');
                if($ledger[4]==0)   $twithdrawl = ""; else $twithdrawl = "($".-1*number_format($ledger[4], 2, '.', ',').")";
                $runningbal = "$".number_format($balforward + $ledger[5], 2, '.', ',');

                $pdf->Cell(30,7,$tdate, 0,0,'L',1);
                $pdf->SetX(30);
                $pdf->Cell(105,7,$tdescription, 0,0,'L',1);
                $pdf->SetX(135);
                $pdf->Cell(20,7,$tdeposit, 0,0,'R',1);
                $pdf->SetX(155);
                $pdf->Cell(20,7,$twithdrawl, 0,0,'R',1);
                $pdf->SetX(175);
                $pdf->Cell(20,7,$runningbal, 0,1,'R',1);

                if ($grey == 1)
                {
                    $pdf->SetFillColor(255);
                    $grey = 0;
                }
                else $grey = 1;



            }
            //Create Final balance
            $pdf->SetFillColor(255);
            $pdf->SetX(175);
            $pdf->SetFont('','B');
            $pdf->Cell(20,5,'Ending Balance: '.$runningbal, 0,1,'R',1);
            $pdf->SetFont('');
        }                   
    }
}

?>

InformationsquelleAutor Jared Meyering | 2013-02-13

Schreibe einen Kommentar