如何使用PHP从外部文本文件中创建 PDF 文件中的表格?
在本文中,我们将学习使用PHP从外部文本文件中使用 FPDF 在 PDF 文件中创建表格。它是一个免费的PHP类,包含许多用于创建和修改 PDF 的函数。 FPDF 类包括许多功能,例如页面格式、页眉、页脚、自动分页符、换行符、图像支持、颜色、链接等等。
方法:您需要从 FPDF 网站下载 FPDF 类并将其包含在您的PHP脚本中。
require('fpdf/fpdf.php');
根据您的需要实例化和使用 FPDF 类,如以下示例所示。
$pdf=new FPDF();
示例:以下示例从包含员工数据的外部文本文件“employees.txt”生成 PDF 文件中的表格。该文件可以根据需要下载或预览。请参阅代码中的注释,以便根据应用程序的需要更好地理解和定制。
PHP
Cell(40, 7, $column, 1);
$this->Ln(); // Set current position
// Data
foreach($data as $row) {
foreach($row as $col)
$this->Cell(40, 6, $col, 1);
$this->Ln(); // Set current position
}
}
// Get styled table
function getStyledTable($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
$colWidth = array(40, 35, 40, 45);
for($i = 0; $i < count($header); $i++)
$this->Cell($colWidth[$i], 7,
$header[$i], 1, 0, 'C', 1);
$this->Ln();
// Setting text color and color fill
// for the background
$this->SetFillColor(224, 235, 255);
$this->SetTextColor(0);
$this->SetFont('');
// Data
$fill = 0;
foreach($data as $row) {
// Prints a cell, first 2 columns are left aligned
$this->Cell($colWidth[0], 6, $row[0], 'LR', 0, 'L', $fill);
$this->Cell($colWidth[1], 6, $row[1], 'LR', 0, 'L', $fill);
// Prints a cell,last 2 columns are right aligned
$this->Cell($colWidth[2], 6, number_format($row[2]),
'LR', 0, 'R', $fill);
$this->Cell($colWidth[3], 6, number_format($row[3]),
'LR', 0, 'R', $fill);
$this->Ln();
$fill=!$fill;
}
$this->Cell(array_sum($colWidth), 0, '', 'T');
}
}
// Instantiate a PDF object
$pdf = new PDF();
// Column titles given by the programmer
$header = array('Name','City','Age','Salary(In thousands)');
// Get data from the text files
$data = $pdf->getDataFrmFile('employees.txt');
// Set the font as required
$pdf->SetFont('Arial', '', 14);
// Add a new page
$pdf->AddPage();
$pdf->getSimpleTable($header,$data);
$pdf->AddPage();
$pdf->getStyledTable($header,$data);
$pdf->Output();
?>
employees.txt:以下是上述 HTML 文件中使用的文件“employees.txt”的内容。
Aman;Varanasi;33;80750
Beena;Bombay;30;10100
Derek;Culcutta;43;52950
Fanny;Hubli;30;51000
Tom;Pondicherry;23;58000
Gleny;Bombay;32;82000
George;Atlanta;32;10500
Ishita;Dubai;34;36940
Iman;Rome;30;57560
Lily;Ranikhet;25;42400
Nihita;Agra;41;15600
Polima;Jaipur;45;99500
Seela;Madras;50;39300
Swati;Spain;41;88390
Janu;London;24;58860
输出: