PHP下FPDF绘制表格

<?php
require('fpdf.php');

class PDF extends FPDF
{
//Load data
function LoadData($file)
{
    //Read file lines
    $lines=file($file);
    $data=array();
    foreach($lines as $line)
        $data[]=explode(';',chop($line));
    return $data;
}

//Simple table
function BasicTable($header,$data)
{
    //Header
    foreach($header as $col)
        $this->;Cell(40,7,$col,1);
    $this->;Ln();
    //Data
    foreach($data as $row)
    {
        foreach($row as $col)
            $this->;Cell(40,6,$col,1);
        $this->;Ln();
    }
}

//Better table
function ImprovedTable($header,$data)
{
    //Column widths
    $w=array(40,35,40,45);
    //Header
    for($i=0;$i<count($header);$i++)
        $this->;Cell($w[$i],7,$header[$i],1,0,'C');
    $this->;Ln();
    //Data
    foreach($data as $row)
    {
        $this->;Cell($w[0],6,$row[0],'LR');
        $this->;Cell($w[1],6,$row[1],'LR');
        $this->;Cell($w[2],6,number_format($row[2]),'LR',0,'R');
        $this->;Cell($w[3],6,number_format($row[3]),'LR',0,'R');
        $this->;Ln();
    }
    //Closure line
    $this->;Cell(array_sum($w),0,'','T');
}

//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',1);
    $this->;Ln();
    //Color and font restoration
    $this->;SetFillColor(224,235,255);
    $this->;SetTextColor(0);
    $this->;SetFont('');
    //Data
    $fill=0;
    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;
    }
    $this->;Cell(array_sum($w),0,'','T');
}
}

$pdf=new PDF();
//Column titles
$header=array('Country','Capital','Area (sq km)','Pop. (thousands)');
//Data loading
$data=$pdf->;LoadData('countries.txt');
$pdf->;SetFont('Arial','',14);
$pdf->;AddPage();
$pdf->;BasicTable($header,$data);
$pdf->;AddPage();
$pdf->;ImprovedTable($header,$data);
$pdf->;AddPage();
$pdf->;FancyTable($header,$data);
$pdf->;Output();
?>; 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值