Skripty : Obsah

Popis

Tato třída vytiskne obsah z vytvořených záložek. Je proto nutné rozšíření Záložky.

Zdrojový kód

<?php
require('bookmark.php');

class PDF_Index extends PDF_Bookmark

{
function CreateIndex(){
    // Obsah titulku
    $this->SetFontSize(20);
    $this->Cell(0,5,'Index',0,1,'C');
    $this->SetFontSize(15);
    $this->Ln(10);

    $size=sizeof($this->outlines);
    $PageCellSize=$this->GetStringWidth('p. '.$this->outlines[$size-1]['p'])+2;
    for ($i=0;$i<$size;$i++){
        // Odskok
        $level=$this->outlines[$i]['l'];
        if($level>0)
            $this->Cell($level*8);

        // Nadpis
        $str=$this->outlines[$i]['t'];
        $strsize=$this->GetStringWidth($str);
        $avail_size=$this->w-$this->lMargin-$this->rMargin-$PageCellSize-($level*8)-4;
        while ($strsize>=$avail_size){
            $str=substr($str,0,-1);
            $strsize=$this->GetStringWidth($str);
        }
        $this->Cell($strsize+2,$this->FontSize+2,$str);

        // Vyplňování teček
        $w=$this->w-$this->lMargin-$this->rMargin-$PageCellSize-($level*8)-($strsize+2);
        $nb=$w/$this->GetStringWidth('.');
        $dots=str_repeat('.',$nb);
        $this->Cell($w,$this->FontSize+2,$dots,0,0,'R');

        // Číslo strany
        $this->Cell($PageCellSize,$this->FontSize+2,'p. '.$this->outlines[$i]['p'],0,1,'R');
    }
}
}

?>


Příklad

<?php
require('createindex.php');

$pdf=new PDF_Index();
$pdf->SetFont('Arial','',15);


// Strana 1
$pdf->AddPage();
$pdf->Bookmark('Section 1');
$pdf->Cell(0,6,'Section 1',0,1);

$pdf->Bookmark('Subsection 1',1,-1);
$pdf->Cell(0,6,'Subsection 1');

$pdf->Ln(50);
$pdf->Bookmark('Subsection 2',1,-1);
$pdf->Cell(0,6,'Subsection 2');


// Strana 2
$pdf->AddPage();
$pdf->Bookmark('Section 2');
$pdf->Cell(0,6,'Section 2',0,1);

$pdf->Bookmark('Subsection 1',1,-1);
$pdf->Cell(0,6,'Subsection 1');


// Obsah
$pdf->AddPage();
$pdf->Bookmark('Index');
$pdf->CreateIndex();
$pdf->Output();

?>


Ukázka

fpdf-obsah.pdf

Download

fpdf-obsah.zip

Informace

Author: Min's
License: FPDF