Fpdf Tabelle in mehr als eine Seite

Ich versuche zu konstruieren, die eine PDF-Tabelle mit fPDF und PHP und es wird eine Tabelle erstellt, wenn es passt auf eine Seite. Allerdings, wenn der Tisch passt nicht in eine Seite, obwohl die erste Seite ist gut, auf der zweiten Seite und auf der anderen Seiten die Tabelle ist nicht regelmäßig. Hier ist ein Beispiel meiner pdf-Ausgabe:

https://rapidshare.com/files/486723233/results.pdf

Und hier ist mein code für diese Tabelle erstellen:

//FILL THE TABLE

            $max_number_of_lines = 0;

            for ($index = 0; $index < count($subjects); $index++,$temp=0,$row_height = 15,$max_number_of_lines = 0) {
                //Account height of row, all will be same
                //Issue a page break first if needed
                if($this->GetY()+$row_height > $this->PageBreakTrigger)
                    $this->AddPage($this->CurOrientation);

                foreach ($subjects[$index] as $fields) {
                    $myString = mb_convert_encoding($fields, "iso-8859-9", "auto");
                    $number_of_lines = ceil(($this->GetStringWidth($fields))/$fieldLengthArray[$temp]);
                    if ($row_height < ceil($number_of_lines * 15)) {
                        $row_height = ceil($number_of_lines * 15);
                        $max_number_of_lines = $number_of_lines+1;
                    }
                    $temp++;
                }
                $temp=0;
                foreach ($subjects[$index] as $myFields) {
                    //$this->SetAutoPageBreak(true,$row_height);
                    $this->SetY($currentY);
                    $this->SetX($currentX);
                    $myString = mb_convert_encoding($myFields, "iso-8859-9", "auto");
                    $number_of_lines = ceil(($this->GetStringWidth($myFields))/$fieldLengthArray[$temp]);

                    if ($number_of_lines < $max_number_of_lines-1) {
                        $this->Rect($currentX, $currentY, $fieldLengthArray[$temp], $row_height);   
                        //Draw the border
                        //$this->Rect($x, $y, $w, $h);
                        $this->MultiCell($fieldLengthArray[$temp], ceil($row_height/$max_number_of_lines) , 
                            $myString,0,  'L', $fill);

                    }
                    else {
                        //Draw the border
                        //$this->Rect($x, $y, $w, $h);
                        $this->Rect($currentX, $currentY, $fieldLengthArray[$temp], $row_height);   
                        $this->MultiCell($fieldLengthArray[$temp], ceil($row_height/$max_number_of_lines), 
                            $myString,0,  'L', $fill);

                    }
                    $currentX += $fieldLengthArray[$temp];
                    $temp++;
                    //$this->Ln();
                }
                $this->Ln($row_height);
                $this->SetY($currentY);
                $currentX = $this->GetX();
                $currentY += $row_height;

            }
            $this->SetFillColor(238);
            $this->SetLineWidth(0.2);
            $this->SetFont('arial_tr', '', 10);
            $this->Ln();
        }

Es ist Teil meiner Funktion, Generieren der Tabelle und $subjects ist die information, die ich bekomme aus der Datenbank.

$subjects = array(array()) 

Konnte ich nicht verstehen, warum es nicht regelmäßig in der zweiten und anderen Seiten, wenn es regelmäßig auf der ersten Seite. Ich überprüfen Sie auch für Ende der Seite.

InformationsquelleAutor sinan | 2012-04-19
Schreibe einen Kommentar