fpdf使用教程


    本教程顯示了製做表的不一樣方法。

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

類PDF擴展FPDF
{
//加載數據
function LoadData($ file)
{
    //讀取文件行
    $ lines = file($ file);
    $ data = array();
    foreach($ lines as $ line)
        $ data [] = explode(';',trim($ line));
    return $ data;
}}

//簡單表
function BasicTable($ header,$ data)
{
    // Header
    foreach($ header as $ col)
        $ this-> Cell(40,7,$ col,1);
    $ this-> Ln();
    //數據
    foreach($ data as $ row)
    {
        foreach($ row as $ col)
            $ this-> Cell(40,6,$ col,1);
        $ this-> Ln();
    }}
}}

//更好的表
function ImprovedTable($ header,$ data)
{
    //列寬
    $ 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();
    //數據
    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();
    }}
    //關閉行
    $ this-> Cell(array_sum($ w),0,'','T');
}}

//彩色表
function FancyTable($ header,$ data)
{
    //顏色,線寬和粗體字體
    $ 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();
    //顏色和字體恢復
    $ this-> SetFillColor(224,235,255);
    $ this-> SetTextColor(0);
    $ this-> SetFont('');
    //數據
    $ 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;
    }}
    //關閉行
    $ this-> Cell(array_sum($ w),0,'','T');
}}
}}

$ pdf = new PDF();
//列標題
$ header = array('Country','Capital','Area(sq km)','Pop。(thousands)');
//數據加載
$ 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();
?>

[演示]
一個表只是一個單元格的集合,它是天然地從他們構建一個。第一個例子是以最基本的方式實現的:簡單的框架單元格,全部相同的大小和左對齊。結果是初步的,但很快得到。

第二個表格帶來了一些改進:每一個列都有本身的寬度,標題居中,數字對齊。此外,水平線已被去除。這是經過Cell()方法的border參數來完成的,該方法指定必須繪製單元格的哪些邊。這裏咱們想要左(L)和右(R)。它仍然是水平線完成表的問題。有兩種可能性:檢查循環中的最後一行,在這種狀況下,咱們使用LRB做爲邊界參數;或者,如這裏所作的,一旦循環結束就添加行。

第三個表相似於第二個表,但使用顏色。只需指定填充,文本和線條顏色。經過使用交替透明和填充的單元得到行的交替着色。
 php

相關文章
相關標籤/搜索