colonymech / docs / www / colonyscout / internal / fpdf16 / tutorial / tuto4.php @ f59acf11
History | View | Annotate | Download (2.06 KB)
1 | f59acf11 | Dan Shope | <?php
|
---|---|---|---|
2 | require('../fpdf.php'); |
||
3 | |||
4 | class PDF extends FPDF |
||
5 | { |
||
6 | //Current column
|
||
7 | var $col=0; |
||
8 | //Ordinate of column start
|
||
9 | var $y0; |
||
10 | |||
11 | function Header() |
||
12 | { |
||
13 | //Page header
|
||
14 | global $title; |
||
15 | |||
16 | $this->SetFont('Arial','B',15); |
||
17 | $w=$this->GetStringWidth($title)+6; |
||
18 | $this->SetX((210-$w)/2); |
||
19 | $this->SetDrawColor(0,80,180); |
||
20 | $this->SetFillColor(230,230,0); |
||
21 | $this->SetTextColor(220,50,50); |
||
22 | $this->SetLineWidth(1); |
||
23 | $this->Cell($w,9,$title,1,1,'C',true); |
||
24 | $this->Ln(10); |
||
25 | //Save ordinate
|
||
26 | $this->y0=$this->GetY(); |
||
27 | } |
||
28 | |||
29 | function Footer() |
||
30 | { |
||
31 | //Page footer
|
||
32 | $this->SetY(-15); |
||
33 | $this->SetFont('Arial','I',8); |
||
34 | $this->SetTextColor(128); |
||
35 | $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C'); |
||
36 | } |
||
37 | |||
38 | function SetCol($col) |
||
39 | { |
||
40 | //Set position at a given column
|
||
41 | $this->col=$col; |
||
42 | $x=10+$col*65; |
||
43 | $this->SetLeftMargin($x); |
||
44 | $this->SetX($x); |
||
45 | } |
||
46 | |||
47 | function AcceptPageBreak() |
||
48 | { |
||
49 | //Method accepting or not automatic page break
|
||
50 | if($this->col<2) |
||
51 | { |
||
52 | //Go to next column
|
||
53 | $this->SetCol($this->col+1); |
||
54 | //Set ordinate to top
|
||
55 | $this->SetY($this->y0); |
||
56 | //Keep on page
|
||
57 | return false; |
||
58 | } |
||
59 | else
|
||
60 | { |
||
61 | //Go back to first column
|
||
62 | $this->SetCol(0); |
||
63 | //Page break
|
||
64 | return true; |
||
65 | } |
||
66 | } |
||
67 | |||
68 | function ChapterTitle($num,$label) |
||
69 | { |
||
70 | //Title
|
||
71 | $this->SetFont('Arial','',12); |
||
72 | $this->SetFillColor(200,220,255); |
||
73 | $this->Cell(0,6,"Chapter $num : $label",0,1,'L',true); |
||
74 | $this->Ln(4); |
||
75 | //Save ordinate
|
||
76 | $this->y0=$this->GetY(); |
||
77 | } |
||
78 | |||
79 | function ChapterBody($file) |
||
80 | { |
||
81 | //Read text file
|
||
82 | $f=fopen($file,'r'); |
||
83 | $txt=fread($f,filesize($file)); |
||
84 | fclose($f); |
||
85 | //Font
|
||
86 | $this->SetFont('Times','',12); |
||
87 | //Output text in a 6 cm width column
|
||
88 | $this->MultiCell(60,5,$txt); |
||
89 | $this->Ln(); |
||
90 | //Mention
|
||
91 | $this->SetFont('','I'); |
||
92 | $this->Cell(0,5,'(end of excerpt)'); |
||
93 | //Go back to first column
|
||
94 | $this->SetCol(0); |
||
95 | } |
||
96 | |||
97 | function PrintChapter($num,$title,$file) |
||
98 | { |
||
99 | //Add chapter
|
||
100 | $this->AddPage(); |
||
101 | $this->ChapterTitle($num,$title); |
||
102 | $this->ChapterBody($file); |
||
103 | } |
||
104 | } |
||
105 | |||
106 | $pdf=new PDF(); |
||
107 | $title='20000 Leagues Under the Seas'; |
||
108 | $pdf->SetTitle($title); |
||
109 | $pdf->SetAuthor('Jules Verne'); |
||
110 | $pdf->PrintChapter(1,'A RUNAWAY REEF','20k_c1.txt'); |
||
111 | $pdf->PrintChapter(2,'THE PROS AND CONS','20k_c2.txt'); |
||
112 | $pdf->Output(); |
||
113 | ?> |