forked from bruno/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.2 KiB
109 lines
2.2 KiB
<?php |
|
require('../fpdf.php'); |
|
|
|
class PDF extends FPDF |
|
{ |
|
protected $col = 0; // Current column |
|
protected $y0; // Ordinate of column start |
|
|
|
function Header() |
|
{ |
|
// Page header |
|
global $title; |
|
|
|
$this->SetFont('Arial','B',15); |
|
$w = $this->GetStringWidth($title)+6; |
|
$this->SetX((210-$w)/2); |
|
$this->SetDrawColor(0,80,180); |
|
$this->SetFillColor(230,230,0); |
|
$this->SetTextColor(220,50,50); |
|
$this->SetLineWidth(1); |
|
$this->Cell($w,9,$title,1,1,'C',true); |
|
$this->Ln(10); |
|
// Save ordinate |
|
$this->y0 = $this->GetY(); |
|
} |
|
|
|
function Footer() |
|
{ |
|
// Page footer |
|
$this->SetY(-15); |
|
$this->SetFont('Arial','I',8); |
|
$this->SetTextColor(128); |
|
$this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C'); |
|
} |
|
|
|
function SetCol($col) |
|
{ |
|
// Set position at a given column |
|
$this->col = $col; |
|
$x = 10+$col*65; |
|
$this->SetLeftMargin($x); |
|
$this->SetX($x); |
|
} |
|
|
|
function AcceptPageBreak() |
|
{ |
|
// Method accepting or not automatic page break |
|
if($this->col<2) |
|
{ |
|
// Go to next column |
|
$this->SetCol($this->col+1); |
|
// Set ordinate to top |
|
$this->SetY($this->y0); |
|
// Keep on page |
|
return false; |
|
} |
|
else |
|
{ |
|
// Go back to first column |
|
$this->SetCol(0); |
|
// Page break |
|
return true; |
|
} |
|
} |
|
|
|
function ChapterTitle($num, $label) |
|
{ |
|
// Title |
|
$this->SetFont('Arial','',12); |
|
$this->SetFillColor(200,220,255); |
|
$this->Cell(0,6,"Chapter $num : $label",0,1,'L',true); |
|
$this->Ln(4); |
|
// Save ordinate |
|
$this->y0 = $this->GetY(); |
|
} |
|
|
|
function ChapterBody($file) |
|
{ |
|
// Read text file |
|
$txt = file_get_contents($file); |
|
// Font |
|
$this->SetFont('Times','',12); |
|
// Output text in a 6 cm width column |
|
$this->MultiCell(60,5,$txt); |
|
$this->Ln(); |
|
// Mention |
|
$this->SetFont('','I'); |
|
$this->Cell(0,5,'(end of excerpt)'); |
|
// Go back to first column |
|
$this->SetCol(0); |
|
} |
|
|
|
function PrintChapter($num, $title, $file) |
|
{ |
|
// Add chapter |
|
$this->AddPage(); |
|
$this->ChapterTitle($num,$title); |
|
$this->ChapterBody($file); |
|
} |
|
} |
|
|
|
$pdf = new PDF(); |
|
$title = '20000 Leagues Under the Seas'; |
|
$pdf->SetTitle($title); |
|
$pdf->SetAuthor('Jules Verne'); |
|
$pdf->PrintChapter(1,'A RUNAWAY REEF','20k_c1.txt'); |
|
$pdf->PrintChapter(2,'THE PROS AND CONS','20k_c2.txt'); |
|
$pdf->Output(); |
|
?>
|
|
|