Ich habe versucht, ein Array von Daten in einer Tabelle in fpdf zu drucken. Dies ist das Tutorial Ich war folgende: http://www.fpdf.org/en/tutorial/tuto5.htmFPDF -PHP - Aufruf an undefinierte Methode
Außer es sagt immer wieder:
Fatal error: Uncaught Error: Call to undefined method FPDF::FancyTable() in ...
Ich habe viele andere Fragen wie diese gesehen, aber keiner von ihnen sind Befestigungs mir.
Ich denke, das sollte eine wirklich einfache Lösung sein und ich mache etwas dummes.
Jede Hilfe würde sehr geschätzt werden.
<?php
require('../fpdf/fpdf.php');
class PDF extends FPDF
{
// Colored table
function FancyTable($header, $data)
{
// Colors, line width and bold font
$this->SetFillColor(255,0,0);
$this->SetTextColor(255);
$this->SetDrawColor(128,0,0);
$this->SetLineWidth(.3);
$this->SetFont('','B');
// Header
$w = array(40, 35, 40, 45);
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C',true);
$this->Ln();
// Color and font restoration
$this->SetFillColor(224,235,255);
$this->SetTextColor(0);
$this->SetFont('');
// Data
$fill = false;
foreach($data as $row)
{
$this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
$this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
$this->Cell($w[2],6,number_format($row[2]),'LR',0,'R',$fill);
$this->Cell($w[3],6,number_format($row[3]),'LR',0,'R',$fill);
$this->Ln();
$fill = !$fill;
}
// Closing line
$this->Cell(array_sum($w),0,'','T');
}
}
$csv = array();
$lines = file('../data/StaffData.csv', FILE_IGNORE_NEW_LINES);
foreach ($lines as $key => $value)
{
$csv[$key] = str_getcsv($value);
}
$pdf = new FPDF();
// Column headings
$header = array('Country', 'Capital', 'Area (sq km)', 'Pop. ');
$data = $csv;
$pdf->AddPage();
$pdf->FancyTable($header,$data);
$pdf->Output();
?>
** UPDATE **
-Danke für die Hilfe. Ich habe die Schriftart geändert und keinen Unterschied gemacht. Habe ich es aus:
$this->SetFont('','B');
zu
$this->SetFont('Arial','',14);
(In der Phantasie Tabellenfunktion)
Aber es kommt mit jeder Menge dieser Fehler auf:
Warning: number_format() expects parameter 1 to be float, string given in /Applications/XAMPP/xamppfiles...
Notice: A non well formed numeric value encountered in /Applications/XAMPP/xamppfiles...
Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file in /Applications/XAMPP/xamppfiles...
I‘ Tut mir leid, aber ich weiß nicht wirklich was ich tun soll.
Ich habe jedoch einige der Tabelle angezeigt, indem Sie die Zeilen mit number_format entfernen. I.E Ich habe diese zwei Zeilen entfernt:
$this->Cell($w[2],6,number_format($row[2]),'LR',0,'R',$fill);
$this->Cell($w[3],6,number_format($row[3]),'LR',0,'R',$fill);
Warum? Es zeigt die ersten zwei Spalten, aber nicht den Rest.
Der Fehler ändern müssen, ist Ihnen zu sagen, dass '$ row [2]' und '$ row [3]' sind Zeichenfolgen und keine Zahlen, so dass Sie 'number_format' nicht verwenden können, wenn Sie sie nicht zuerst aus einer Zeichenfolge konvertieren. – hcoat
Oh ok. Ich echote sie und die Zeilen enthalten alle Daten in einer Zeichenfolge. Wie würde ich die Strings in Zahlen umwandeln? Es schien in Ordnung zu sein, nachdem das number_format entfernt und die Zeile verlassen wurde. Danke für Ihre Hilfe hcoat. Ich werde die Antwort trotzdem akzeptieren. :-) –