📜  如何使用PHP从外部文本文件中创建 PDF 文件中的表格?

📅  最后修改于: 2022-05-13 01:56:46.774000             🧑  作者: Mango

如何使用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

输出:

PDF 文件中的表格