Project

General

Profile

Statistics
| Branch: | Revision:

colonymech / docs / www / colonyscout / internal / fpdf16 / tutorial / tuto4.php @ f59acf11

History | View | Annotate | Download (2.06 KB)

1
<?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
?>