表 本教程顯示了製做表的不一樣方法。php
<? php require('fpdf.php');
類PDF擴展FPDF { //加載數據 function LoadData($ file) { //讀取文件行 $ lines = file($ file); $ data = array(); foreach($ lines as $ line) $ data [] = explode(';',trim($ line)); return $ data; }}api
//簡單表 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'); }} }}ui
$ 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(); ?>this
[演示] 一個表只是一個單元格的集合,它是天然地從他們構建一個。第一個例子是以最基本的方式實現的:簡單的框架單元格,全部相同的大小和左對齊。結果是初步的,但很快得到。code
第二個表格帶來了一些改進:每一個列都有本身的寬度,標題居中,數字對齊。此外,水平線已被去除。這是經過Cell()方法的border參數來完成的,該方法指定必須繪製單元格的哪些邊。這裏咱們想要左(L)和右(R)。它仍然是水平線完成表的問題。有兩種可能性:檢查循環中的最後一行,在這種狀況下,咱們使用LRB做爲邊界參數;或者,如這裏所作的,一旦循環結束就添加行。orm
第三個表相似於第二個表,但使用顏色。只需指定填充,文本和線條顏色。經過使用交替透明和填充的單元得到行的交替着色。教程