Ritorno a capo e colori

Continuiamo con un esempio in cui si stampano paragrafi giustificati. Si illustra anche l'uso dei colori.
<?php

require('fpdf.php');



class PDF extends FPDF

{

function Header()

{

    global $title;



    // Arial bold 15

    $this->SetFont('Arial','B',15);

    // Calculate width of title and position

    $w = $this->GetStringWidth($title)+6;

    $this->SetX((210-$w)/2);

    // Colors of frame, background and text

    $this->SetDrawColor(0,80,180);

    $this->SetFillColor(230,230,0);

    $this->SetTextColor(220,50,50);

    // Thickness of frame (1 mm)

    $this->SetLineWidth(1);

    // Title

    $this->Cell($w,9,$title,1,1,'C',true);

    // Line break

    $this->Ln(10);

}



function Footer()

{

    // Position at 1.5 cm from bottom

    $this->SetY(-15);

    // Arial italic 8

    $this->SetFont('Arial','I',8);

    // Text color in gray

    $this->SetTextColor(128);

    // Page number

    $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');

}



function ChapterTitle($num, $label)

{

    // Arial 12

    $this->SetFont('Arial','',12);

    // Background color

    $this->SetFillColor(200,220,255);

    // Title

    $this->Cell(0,6,"Chapter $num : $label",0,1,'L',true);

    // Line break

    $this->Ln(4);

}



function ChapterBody($file)

{

    // Read text file

    $txt = file_get_contents($file);

    // Times 12

    $this->SetFont('Times','',12);

    // Output justified text

    $this->MultiCell(0,5,$txt);

    // Line break

    $this->Ln();

    // Mention in italics

    $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();

?>

[Eseguire]

Il metodo GetStringWidth() permette di determinare la lunghezza di una stringa nel font corrente, è qui utilizzata per calcolare la posizione e la larghezza della cornice che circonda il titolo. Quando i colori sono impostati (attraverso SetDrawColor(), SetFillColor() e SetTextColor()) e lo spessore della linea è impostata ad 1 mm (invece che 0.2 di predefinito) con SetLineWidth(). Alla fine si mostra la cella (l'ultimo parametro a true indica che lo sfondo deve essere riempito).

Il metodo utilizzato per stampare i paragrafi è MultiCell(). Ogni volta che una riga raggiunge l'estremità destra della cella, o se si raggiunge un ritorno a capo, si lancia un'interruzione di riga e si crea automaticamente una nuova cella creata sotto quella precedente. Il testo è giustificato in maniera predefinita.

Si definiscono due proprietà del documento: il titolo (SetTitle()) e l'autore (SetAuthor()). Ci sono molti modi per mostrarli in un riproduttore di PDF. Il primo modo è aprire direttamente il PDF con il lettore PDF e visualizzare le proprietà del documento, spesso attraverso il menù File. A volte si può anche fare click con il tasto destro e selezionare Proprietà del documento (o qualcosa del genere). Un altro modo è di premere la combinazione Ctrl+D.