FPDF : Výukové ukázky : Řádkování a barvy

Pokračujeme v příkladu, který vytiskne vyrovnané body. Zároveň ukazuje použití barev.
<?php
require('fpdf.php');

class PDF extends FPDF

{
function Header()
{
    global $title;

    // Arial bold 15
    $this->SetFont('Arial','B',15);
    // Vyýpočet šířky a pozice titulku
    $w=$this->GetStringWidth($title)+6;
    $this->SetX((210-$w)/2);
    // Barvy rámu, pozadí a textu
    $this->SetDrawColor(0,80,180);
    $this->SetFillColor(230,230,0);
    $this->SetTextColor(220,50,50);
    // Tloušťka rámu (1 mm)
    $this->SetLineWidth(1);
    // Název
    $this->Cell($w,9,$title,1,1,'C',true);
    // Odřádkování
    $this->Ln(10);
}

function Footer()
{
    // Pozice 1.5 cm od spodní hrany stránky
    $this->SetY(-15);
    // Arial italic 8
    $this->SetFont('Arial','I',8);
    // Barva textu v šedé
    $this->SetTextColor(128);
    // Číslo stránky
    $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');
}

function ChapterTitle($num,$label)
{
    // Arial 12
    $this->SetFont('Arial','',12);
    // Barva pozadí
    $this->SetFillColor(200,220,255);
    // Název
    $this->Cell(0,6,"Chapter $num : $label",0,1,'L',true);
    // Odřádkování
    $this->Ln(4);
}

function ChapterBody($file)
{
    // Přečtěte textový soubor
    $f=fopen($file,'r');
    $txt=fread($f,filesize($file));
    fclose($f);
    // Times 12
    $this->SetFont('Times','',12);
    // Výstup zarovnaného textu
    $this->MultiCell(0,5,$txt);
    // Odřádkování
    $this->Ln();
    // Změna na kurzívu
    $this->SetFont('','I');
    $this->Cell(0,5,'(end of excerpt)');
}

function PrintChapter($num,$title,$file)
{
    $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();
?>

[Demo]

The GetStringWidth() method allows to determine the length of a string in the current font, which is used here to calculate the position and the width of the frame surrounding the title. Then colors are set (via SetDrawColor(), SetFillColor() and SetTextColor()) and the thickness of the line is set to 1 mm (against 0.2 by default) with SetLineWidth(). Finally, we output the cell (the last parameter to true indicates that the background must be filled).

The method used to print the paragraphs is MultiCell(). Each time a line reaches the right extremity of the cell or a carriage return character is met, a line break is issued and a new cell automatically created under the current one. Text is justified by default.

Two document properties are defined: the title (SetTitle()) and the author (SetAuthor()). Properties can be viewed by two means. First is to open the document directly with Acrobat Reader, go to the File menu and choose the Document Properties option. The second, also available from the plug-in, is to right-click and select Document Properties.