colonymech / docs / www / colonyscout / internal / fpdf16 / tutorial / tuto5.php @ f59acf11
History | View | Annotate | Download (2.1 KB)
1 | f59acf11 | Dan Shope | <?php
|
---|---|---|---|
2 | require('../fpdf.php'); |
||
3 | |||
4 | class PDF extends FPDF |
||
5 | { |
||
6 | //Load data
|
||
7 | function LoadData($file) |
||
8 | { |
||
9 | //Read file lines
|
||
10 | $lines=file($file); |
||
11 | $data=array(); |
||
12 | foreach($lines as $line) |
||
13 | $data[]=explode(';',chop($line)); |
||
14 | return $data; |
||
15 | } |
||
16 | |||
17 | //Simple table
|
||
18 | function BasicTable($header,$data) |
||
19 | { |
||
20 | //Header
|
||
21 | foreach($header as $col) |
||
22 | $this->Cell(40,7,$col,1); |
||
23 | $this->Ln(); |
||
24 | //Data
|
||
25 | foreach($data as $row) |
||
26 | { |
||
27 | foreach($row as $col) |
||
28 | $this->Cell(40,6,$col,1); |
||
29 | $this->Ln(); |
||
30 | } |
||
31 | } |
||
32 | |||
33 | //Better table
|
||
34 | function ImprovedTable($header,$data) |
||
35 | { |
||
36 | //Column widths
|
||
37 | $w=array(40,35,40,45); |
||
38 | //Header
|
||
39 | for($i=0;$i<count($header);$i++) |
||
40 | $this->Cell($w[$i],7,$header[$i],1,0,'C'); |
||
41 | $this->Ln(); |
||
42 | //Data
|
||
43 | foreach($data as $row) |
||
44 | { |
||
45 | $this->Cell($w[0],6,$row[0],'LR'); |
||
46 | $this->Cell($w[1],6,$row[1],'LR'); |
||
47 | $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R'); |
||
48 | $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R'); |
||
49 | $this->Ln(); |
||
50 | } |
||
51 | //Closure line
|
||
52 | $this->Cell(array_sum($w),0,'','T'); |
||
53 | } |
||
54 | |||
55 | //Colored table
|
||
56 | function FancyTable($header,$data) |
||
57 | { |
||
58 | //Colors, line width and bold font
|
||
59 | $this->SetFillColor(255,0,0); |
||
60 | $this->SetTextColor(255); |
||
61 | $this->SetDrawColor(128,0,0); |
||
62 | $this->SetLineWidth(.3); |
||
63 | $this->SetFont('','B'); |
||
64 | //Header
|
||
65 | $w=array(40,35,40,45); |
||
66 | for($i=0;$i<count($header);$i++) |
||
67 | $this->Cell($w[$i],7,$header[$i],1,0,'C',true); |
||
68 | $this->Ln(); |
||
69 | //Color and font restoration
|
||
70 | $this->SetFillColor(224,235,255); |
||
71 | $this->SetTextColor(0); |
||
72 | $this->SetFont(''); |
||
73 | //Data
|
||
74 | $fill=false; |
||
75 | foreach($data as $row) |
||
76 | { |
||
77 | $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill); |
||
78 | $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill); |
||
79 | $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R',$fill); |
||
80 | $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R',$fill); |
||
81 | $this->Ln(); |
||
82 | $fill=!$fill; |
||
83 | } |
||
84 | $this->Cell(array_sum($w),0,'','T'); |
||
85 | } |
||
86 | } |
||
87 | |||
88 | $pdf=new PDF(); |
||
89 | //Column titles
|
||
90 | $header=array('Country','Capital','Area (sq km)','Pop. (thousands)'); |
||
91 | //Data loading
|
||
92 | $data=$pdf->LoadData('countries.txt'); |
||
93 | $pdf->SetFont('Arial','',14); |
||
94 | $pdf->AddPage(); |
||
95 | $pdf->BasicTable($header,$data); |
||
96 | $pdf->AddPage(); |
||
97 | $pdf->ImprovedTable($header,$data); |
||
98 | $pdf->AddPage(); |
||
99 | $pdf->FancyTable($header,$data); |
||
100 | $pdf->Output(); |
||
101 | ?> |