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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es geschieht, weil mit einer Zelle, die Sie auslösen einen Seitenumbruch in die Seite.
Entweder Sie deaktivieren in der fpdf der "auto-Seite" brechen " oder müssen Sie im Voraus berechnen die Höhe der Zellen für eine Zeile.
Als alternative können Sie check out my fpdf Tabelle Skript:
http://interpid.eu/fpdf-table