fpdf
PHP powered
home was ist fpdf? downloads & add-ons dokumentation faq forum impressum links kontakt
 

Downloads > Add-On

 
         
 

Fancy Row

Informations

Author: Angelo Galleja
License: Freeware

Description

This script extends the Row() function from the script Table with MultiCells. It provides borders, alignments, font styles and maxlines (to use this last feature, you'll need the script MultiCell with maxline).

Source

<?php
require 'mc_table.php';

class
PDF_FancyRow extends PDF_MC_TABLE
{
    function FancyRow($data, $border=array(), $align=array(), $style = array(), $maxline=array())
    {
        //Calculate the height of the row
        $nb = 0;
        for($i=0;$i<count($data);$i++) {
            $nb = max($nb, $this->NbLines($this->widths[$i], $data[$i]));
        }
        if (count($maxline)) {
            $_maxline = max($maxline);
            if ($nb > $_maxline) {
                $nb = $_maxline;
            }
        }
        $h = 5*$nb;
        //Issue a page break first if needed
        $this->CheckPageBreak($h);
        //Draw the cells of the row
        for($i=0;$i<count($data);$i++) {
            $w=$this->widths[$i];
            // alignment
            $a = isset($align[$i]) ? $align[$i] : 'L';
            // maxline
            $m = isset($maxline[$i]) ? $maxline[$i] : false;
            //Save the current position
            $x = $this->GetX();
            $y = $this->GetY();
            //Draw the border
            if ($border[$i]==1) {
                $this->Rect($x, $y, $w, $h);
            } else {
                $_border = strtoupper($border[$i]);
                if (strstr($_border, 'L')!==false) {
                    $this->Line($x, $y, $x, $y+$h);
                }
                if (strstr($_border, 'R')!==false) {
                    $this->Line($x+$w, $y, $x+$w, $y+$h);
                }
                if (strstr($_border, 'T')!==false) {
                    $this->Line($x, $y, $x+$w, $y);
                }
                if (strstr($_border, 'B')!==false) {
                    $this->Line($x, $y+$h, $x+$w, $y+$h);
                }
            }
            // Setting Style
            if (isset($style[$i])) {
                $this->SetFont('', $style[$i]);
            }
            $this->MultiCell($w, 5, $data[$i], 0, $a, 0, $m);
            //Put the position to the right of the cell
            $this->SetXY($x+$w, $y);
        }
        //Go to the next line
        $this->Ln($h);
    }
}
?>

Example

<?php
define
('FPDF_FONTPATH', 'font/');
require
'fancyrow.php';

$pdf = new PDF_FancyRow();
$pdf->AddPage();
$pdf->SetFont('Arial', '', 12);
$pdf->Write(12, 'Please fill in your name, company and email below:');
$pdf->Ln(20);
$widths = array(5, 40, 5, 40, 5, 40);
$border = array('', 'LBR', '', 'LBR', '', 'LBR');
$caption = array('', 'Name', '', 'Company', '', 'Email');
$align = array('', 'C', '', 'C', '', 'C');
$style = array('', 'I', '', 'I', '', 'I');
$empty = array('', '', '', '', '', '');
$pdf->SetWidths($widths);
$pdf->FancyRow($empty, $border);
$pdf->FancyRow($caption, array(), $align, $style);
$pdf->Output();
?>

View the result here.

Download

ZIP | TGZ
 






 
         
         
 
 
fpdf.de © Copyright 2004-2006 carrib internet solutions - Beachten Sie bitte die Nutzungsbedingungen
Eine Verwendung der auf fpdf.de befindlichen Inhalte (Texte, Grafiken) ist nur mit Zustimmung des Betreibers zulässig.